LEVEL1/로또의 최고 순위와 최저 순위

Q·2021년 8월 3일
0

문제 설명

문제는 이곳을 참조하길 바란다.


전체 코드

def solution(lottos, win_nums):
    lottos.sort(reverse=True) 
    win_nums.sort(reverse=True)

    mx = 6
    mn = 6
    temp = 0
    for i in range(len(lottos)):
        if lottos[i] == 0:
            temp += 1
            if temp >= 2:
                mx -= 1
        elif lottos[i] in win_nums:
            temp += 1
            if temp >= 2:
                mx -= 1
                mn -= 1
    answer = [mx,mn]
    return answer

해결 방법

쉬운 문제인데 이상하게 문제를 길게 만들고 조금 억지로 난이도를 있게 하고 싶어한 것 같은 느낌을 받은 문제이다.

문제 자체의 해결법은 상당히 간단하다. lottos 리스트와 win_nums 리스트를 내림차순으로 정렬하고 먼저 결과를 받을 최고등수 mx, 최소등수 mx, 2개 이상 맞춰야 등수에 카운트가 들어가므로 그 것을 조정해줄 temp하는 변수를 선언하고 len(lottos)를 중심으로 for문을 돌리며 lottos의 원소가 0일때는 temp에 +1을 하고 만약 숫자를 2개이상 맞춘거라면 최고등수 mx에만 등수를 올리기위한 -1을 해준다.

lottos의 원소가 0이 아니고 win_nums에 포함될때 temp에 +1을 하고 만약 숫자를 2개이상 맞춘거라면 최고등수 mx와 mx에 등수를 올리기 위해 각각 -1을 해준다.

profile
Data Engineer

0개의 댓글

관련 채용 정보