자료구조 및 알고리즘/프로그래머스

프로그래머스 - 로또의 최고 순위와 최저 순위 (파이썬)

viamemine 2024. 4. 8. 22:51
728x90
반응형


 

💬 내가 작성한 python 코드

 

def solution(lottos, win_nums):
    
    cnt = 0 # 일치 번호 갯수 세기
    zero_cnt = 0 # 0 갯수 세기
    
    for i in lottos: # 길이가 6
        if i in win_nums:
            cnt += 1
        if i == 0: # 0 갯수 세기
            zero_cnt += 1
    
    maxi = 7-(zero_cnt+cnt)
    mini = 7-cnt
    
    if cnt == 0:
        mini = 6
    if zero_cnt+cnt <=1 : 
        maxi = 6
    
    answer = [maxi, mini]
    return answer

 

 


 

💬 더 나은 코드

 

def solution(lottos, win_nums):

    rank = [6, 6, 5, 4, 3, 2, 1] # rank 리스트를 만들기

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

 

 

rank를 리스트로 만들어서 처리해주는 것이 더 좋은 방법이라고 생각한다.

 

 

 

 

 

 

728x90