문제 설명
•
민우가 구매한 로또 번호와 당첨 번호가 주어졌을 때, 알아볼 수 없는 번호(0)를 고려하여 당첨 가능한 최고 순위와 최저 순위를 구하는 문제
예제 입력/출력
lottos | win_nums | result |
[44, 1, 0, 0, 31, 25] | [31, 10, 45, 1, 6, 19] | [3, 5] |
[0, 0, 0, 0, 0, 0] | [38, 19, 20, 40, 15, 25] | [1, 6] |
[45, 4, 35, 20, 3, 9] | [20, 9, 3, 45, 4, 35] | [1, 1] |
제약 조건
•
lottos는 길이 6인 정수 배열
◦
모든 원소
▪
0은 알아볼 수 없는 번호
▪
원소는 모두 다른 숫자
•
win_nums는 길이 6인 정수 배열
◦
모든 원소
▪
원소는 모두 다른 숫자
문제 풀이
접근1 브루트 포스 -
접근2 그리디 -
풀이 코드
def solution(lottos, win_nums):
cnt_0 = 0
cnt_same = 0
for cur_num in lottos:
if cur_num == 0:
cnt_0 += 1
elif cur_num in win_nums:
cnt_same += 1
rank = {6: 1, 5: 2, 4: 3, 3: 4, 2: 5, 1: 6, 0: 6}
answer = [rank[cnt_same + cnt_0], rank[cnt_same]]
return answer
Python
복사