728x90
1~45숫자
6개의 숫자 고르기
6개:1등/ 5개:2등/ 4개:3등/ ... / 2개: 5등/ 1개:6등/ 0개:6등
0은 맞출 수도 있고 못맞출 수도 있다.
def solution(lottos, win_nums):
rank = [6,6,5,4,3,2,1]
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]
print(solution([1,2,3,4,0,0], [1,2,3,4,5,6]))
랭크를 저렇게 배열 인덱스로 고를 수 있도록 하는 것도 매력적인 방법인 것 같다.
보기도 쉽고 말이다.
def solution(lottos, win_nums):
rank = [6,6,5,4,3,2,1]
cnt_0 = lottos.count(0) # 0 개수 세기
ans = len(set(lottos)&set(win_nums))
return rank[cnt_0+ans], rank[ans]
print(solution([1,2,3,4,0,0], [1,2,3,4,5,6]))
리스트에는 count()로 빈도수를 출력할 수 있는 함수가 있다.
그리고 set끼리는 and연산자를 사용하여 교집합을 얻어낼 수 있다.
이를 이용하여 답을 간단하게 구할 수 있다.
728x90
'알고리즘 > programmers[1]' 카테고리의 다른 글
[프로그래머스] 음양 더하기 (0) | 2022.01.10 |
---|---|
[프로그래머스] 없는 숫자 더하기 다른 풀이 (0) | 2022.01.10 |
[프로그래머스] 없는 숫자 더하기 (0) | 2022.01.09 |
[프로그래머스]크레인 인형뽑기 게임 다른 풀이 (0) | 2022.01.09 |
[프로그래머스]크레인 인형뽑기 게임 (0) | 2022.01.09 |