로또의 최고 순위와 최저 순위 [level 1]

Ji·2022년 3월 15일
0
# 1. 6개의 숫자 중 알아볼 수 없는 번호 0
# 2. 일치 번호에 따라서 등수 결정 
# 3. 6개 번호(1등) 5개번호 (2등) .. 0개번호 (6등)
# 4. 당첨 가능한 최고순위/ 최저순위를 배열 담아서 리턴

def rank(cnt):
    if cnt==6:
        return 1
    elif cnt==5:
        return 2
    elif cnt==4:
        return 3
    elif cnt==3:
        return 4
    elif cnt==2:
        return 5
    elif cnt==1:
        return 6
    elif cnt==0:
        return 6


def solution(lottos, win_nums):
    answer = []
    success_cnt=0
    unknown_cnt=0
    cnt=[]

    for num in lottos:
        if num in win_nums:
            success_cnt+=1 # 로또 번호가 맞을 시, success_cnt 증가
        if num==0:
            unknown_cnt+=1 # 로또 번호가 0일시, unknown_cnt 증가

    print(success_cnt) #맞출 수 있는 최소 값
    print(unknown_cnt+success_cnt) # 맞출 수 있는 최대 값


    answer.append(rank(success_cnt+unknown_cnt))
    answer.append(rank(success_cnt))


    return answer

빠른 풀이

def solution(lottos, win_nums):

    rank=[6,6,5,4,3,2,1]

    cnt_0 = lottos.count(0)
    ans = 0
    for x in win_nums:
        if x in lottos:
            ans += 1
    return rank[cnt_0 + ans],rank[ans]

https://programmers.co.kr/learn/courses/30/lessons/77484

profile
공부방

0개의 댓글