Search

PGS 로또의 최고 순위와 최저 순위

생성일
2024/10/09 03:33
태그
구현
그리디 알고리즘

문제 설명

민우가 구매한 로또 번호와 당첨 번호가 주어졌을 때, 알아볼 수 없는 번호(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인 정수 배열
00 ≤ 모든 원소 45≤ 45
0은 알아볼 수 없는 번호
원소는 모두 다른 숫자
win_nums는 길이 6인 정수 배열
00 ≤ 모든 원소 45≤ 45
원소는 모두 다른 숫자

문제 풀이

접근1 브루트 포스 - O(456)O(45^6)
접근2 그리디 - O(1)O(1)

풀이 코드

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
복사