coding test - python/Programmers

Programmers / 로또의 최고 순위와 최저 순위 / Python

sillon 2022. 4. 8. 16:36
728x90
반응형

 

*문제 출처는 프로그래머스에 있습니다.

문제 제목: 로또의 최고 순위와 최저 순위

문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/77484


나의 풀이

def solution(lottos, win_nums):
    cnt = [0,0]
    num = []
    zero_cnt = 0
    for i in lottos:
        if i in win_nums:
            num.append(i)
        if i == 0 :
            zero_cnt += 1
            
    if len(num) == 0 :
        cnt[1] = 6
    elif len(num) == 1:
        cnt[1] = 6
    elif len(num) == 2:
        cnt[1] = 5
    elif len(num) == 3:
        cnt[1] = 4
    elif len(num) == 4:
        cnt[1] = 3
    elif len(num) == 5:
        cnt[1] = 2
    elif len(num) == 6:
        cnt[1] = 1
    
    if zero_cnt == 6 and len(num) == 0:
        cnt[0] = 1
        cnt[1] = 6
        
    else:
        cnt[0] = cnt[1] - zero_cnt
    

    return cnt

갑자기 머리가 멍청해져서 if문 밖에 생각 안났음..

 

모범답안

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]

등수가 적힌 리스트를 만들어주고 인덱스를 활용함


 

728x90
반응형