PS/프로그래머스

[Python] 로또의 최고 순위와 최저 순위

s_omi 2024. 10. 29. 10:57

✏️ 문제

 

문제 파악

최고 순위는 최저 순위 - 0의 개수인 걸 기준으로 코드를 짰다.

최저 순위는 6이고 최고 순위는 1인데 0이 6개일 시 최고 순위가 1이 아닌 0이 되므로 이를 해결하기 위해 6이 아닌 7부터 시작했다.

그리고 최저는 7이 아니라 6이므로 7일 경우 6으로 바꿔주었다.

 

 

코드

def solution(lottos, win_nums):
    answer = [7, 7]
    zero = lottos.count(0)
    
    for l in lottos:
        if l in win_nums:
            answer[0] -= 1
            answer[1] -= 1
            
    if answer[1] != 1:
        answer[0] = answer[1] - zero
        
    if answer[0] == 7:
        answer[0] = 6
    if answer[1] == 7:
        answer[1] = 6
        
    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]

 

rank 배열의 0과 1에 6을 넣어서 나처럼 굳이 마지막에 if 처리 안해줘도 되게 하셨다.. 

'PS > 프로그래머스' 카테고리의 다른 글

[Python] 체육복  (0) 2024.10.31
[Python] 키패드 누르기  (0) 2024.10.31
[Python] 문자열 나누기  (0) 2024.10.29
[Python] 둘만의 암호  (0) 2024.10.29
[Python] 대충 만든 자판  (0) 2024.10.29