on my way
[프로그래머스 코딩테스트 연습] 로또의 최고 순위와 최저 순위 (Python3) Lv1 본문
반응형
def solution(lottos, win_nums):
cnt0 = lottos.count(0)
cntw = 0
for w in win_nums:
if w in lottos:
cntw += 1
scores = {6: 1, 5: 2, 4: 3, 3: 4, 2: 5, 1: 6, 0: 6}
return scores[cntw + cnt0], scores[cntw]
처음에는 7 - 일치 횟수 이런식으로 풀어서 코드가 더러워진 감이 있었다.
깔끔하게 정리하기 위해 딕셔너리를 사용해서 일치 횟수와 매칭시켜 출력하게끔 했다.
코드 해설
- cnt0 계산:
- cnt0 = lottos.count(0)는 민우가 모르는 번호 0의 개수를 계산
- cntw 계산:
- cntw는 민우가 알고 있는 번호 중 당첨 번호와 일치하는 개수를 의미
- 등수 계산:
- scores 딕셔너리는 번호가 몇 개 맞았을 때 몇 등인지에 대한 정보를 담고 있다
- cntw + cnt0를 사용해 민우의 최고 등수를 계산하고, cntw로 최저 등수를 계산한다.
반응형
'algorithm > Python' 카테고리의 다른 글
[프로그래머스 도서실습 내일은 코딩테스트] 파트1.문자열 다루기 : OX퀴즈 (Python3) (0) | 2024.08.24 |
---|---|
[프로그래머스 도서실습 내일은 코딩테스트] 파트1.문자열 다루기 : 옹알이(1) (Python3) (0) | 2024.08.23 |
[프로그래머스 코딩테스트 연습] 땅따먹기 (Python3) Lv2 (0) | 2024.08.07 |
[프로그래머스 코딩테스트 연습] 기사단원의 무기 (Python3) Lv1 (0) | 2024.08.04 |
[프로그래머스 코딩테스트 연습 > 정렬] 소수 찾기 (Python3) Lv1 (0) | 2024.08.04 |