[파이썬/Python/프로그래머스] 로또의 최고 순위와 최저 순위

SooYeon Yeon·2022년 6월 14일
0

파이썬/알고리즘

목록 보기
18/35

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

def solution(lottos, win_nums):
    answer = []
    cnt=0
    
    zero = 0
    for lotto in lottos:
        if lotto in win_nums:
            win_nums.remove(lotto)
            cnt+=1
        elif lotto == 0:
            zero+=1
    max_number = cnt+zero
    min_number = cnt
    
    checkRank(max_number,answer)
    checkRank(min_number,answer)
                         
    return answer

def checkRank(number,answer):
    if number == 6:
        answer.append(1)
    elif number == 5:
        answer.append(2)
    elif number == 4:
        answer.append(3)
    elif number == 3:
        answer.append(4)
    elif number == 2:
        answer.append(5)
    else:
        answer.append(6)

풀이

  1. 로또 번호를 하나씩 확인한다.
  2. 그 번호가 당첨 숫자에 포함되어 있는 경우에는 cnt를 1 증가시키고, 당첨숫자 리스트에서 그 숫자를 제거한다.
  3. 만약 자신의 로또 번호가 0이면 지워져 안보이는 것이므로 zero를 증가시켜준다.
  4. 최고점은 cnt값에서 zero를 더한 값이 되고 (zero가 다 맞았을 시), 최저점은 zero가 다 틀린 그냥 cnt 그대로의 값이 된다.
  5. 해당 수를 ranking에서 확인한다.

0개의 댓글