Algorithm/프로그래머스

[세무민의 코딩일기] 로또의 최고 순위와 최저 순위 문제 풀이

세기루민 2021. 9. 4. 17:26
728x90

[세무민의 코딩일기] 로또의 최고 순위와 최저 순위 문제 풀이


이번에 풀어본 문제는 2021 Dev-matching : 웹 백앤드 개발 관련하여 출제된 문제이다.


1. 문제 설명

 

2. 제한사항 및 예시

 

3. 문제 풀이 방법 

이번 문제는 문제 이해만 잘하면 쉽게 풀수 있는 문제입니다.

말 그대로 0을 제외하고 같은 값이 존재하는지 찾아본 뒤에 0값만큼 최고순위에 증가시킨 뒤 순위를 매기면 됩니다.

 

4. 코드 풀이

def RankCheck(result):
    return {6:1, 5:2, 4:3, 3:4, 2:5, 1:6, 0:6}.get(result, "rank")


def solution(lottos, win_nums):
    
    result = []
    maxResult = 0
    minResult = 0

    zeroCheck = 0
    maxCheck = 0
    minCheck = 0

    for i in range(0, 6):
        if(lottos[i] == 0):
            zeroCheck += 1

        for j in range(0, 6):
            if(win_nums[j] == lottos[i]):
                maxCheck += 1
                minCheck += 1

    maxCheck += zeroCheck           

    maxResult = RankCheck(maxCheck)
    minResult = RankCheck(minCheck)


    answer = [maxResult, minResult]
    return answer

RankCheck라는 함수를 하나 생성하여서 Max값과 Min값을 구분하여 등수를 산출해줍니다.

결과 함수에서는 해당 lottes와 win_nums를 비교하면서 max값과 min값 그리고 zero값을 체크해주면 됩니다. 

RankCheck를 만든 이유는 max값과 min값을 비교해야 하는데 6개보다 많은 경우에는 코드의 길이가 길어 질 것이라고 

판단하여서 함수로 표현했습니다.

 


5. 결과


최근에 회사를 다니면서 공부를 좀 더 열심히 해야겠다고 느끼고 있는 중입니다.

따라서 주말에 최대한 코드 관련 포스팅을 할 계획이고 최대한 제 포스팅을 보고 도움이 되셨으면 좋겠습니다.

다음에는 더 좋은 포스팅으로 찾아오겠습니다.

 

728x90