코딩테스트 연습 - 로또의 최고 순위와 최저 순위

Gyuhan Park·2021년 7월 11일
0

코딩테스트 정복

목록 보기
9/47

코딩테스트 연습 - 로또의 최고 순위와 최저 순위

로또에 낙서를 해서 일부 번호가 지워졌다. 이 로또의 최고 순위와 최저 순위를 구하라.

# 정답코드

무슨 숫자인지 상관없이 맞은 개수로 등수를 판별하므로 개수만 생각하여 코드를 짰다.

def solution(lottos, win_nums):
    best_nums = 0
    worst_nums = 0
    nums = 0
    zeros = lottos.count(0)
    for i in lottos:
        if i in win_nums:          
            nums += 1
    best_nums = nums + zeros
    worst_nums = nums
                
    best = {6:1, 5:2, 4:3, 3:4, 2:5}.get(best_nums, 6)
    worst = {6:1, 5:2, 4:3, 3:4, 2:5}.get(worst_nums, 6)
    result = [best, worst]
    return result

# 참고코드

당첨등수는 1등부터 6등까지밖에 없고 계산이 간단하기 때문에 굳이 dictionary로 매칭시키지 않아도 되는 것이였다.

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]
profile
단단한 프론트엔드 개발자가 되고 싶은

0개의 댓글