- 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/77484

 

Level1이고, 스스로 푼 문제

 

1.

로직은 당첨 번호과 같은 숫자들의 갯수를 먼저 센다

이거는 correct 변수로 진행한다 

 

2.

2-1. 0의 갯수를 카운트 한 다음 0이 모두 당첨번호가 아닌 경우가 가능한 가장 낮은 등수일 것이고,

2-2. 0이 모두 당첨번호인 경우에 가능한 가장 높은 등수일 것이다. 

이 경우는 zeros 변수로 진행한다 

 

if문 만족하는 경우는 break 써서 해당 for문 나와야 한다. 안 그럼 틀린다!

처음에는 가장 높은 등수를 세는 건데, 만약 맞는 숫자와 0의 갯수의 합이 0이면 무조건 6등이므로, 이는 따로 조건 설정을 해준다 

 

같은 로직으로 가장 낮은 등수를 찾는다음 answer에 삽입한 후 반환하면 된다 

 

- 정답 풀이 :

def solution(lottos, win_nums):
    answer = []
    
    correct = 0
    zeros = 0
    for i in range(6):
        if lottos[i] in win_nums:
            correct += 1
        if lottos[i] == 0:
            zeros += 1
            
    first = correct + zeros
    for i in range(6,-1,-1):
        if i == 0:
            answer.append(6)
            break
        elif first == i :
            answer.append(7-i)
            break
            
    for i in range(6,-1,-1):
        if correct == 0:
            answer.append(6)
            break
        elif correct == i:
            answer.append(7-i)
            break
                
    return answer

+ Recent posts