728x90
반응형
<문제 링크>
https://programmers.co.kr/learn/courses/30/lessons/77484
코딩테스트 연습 - 로또의 최고 순위와 최저 순위
로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호
programmers.co.kr
<풀이>
낙서가 되어 있는 나의 로또 번호와 1등 당첨 로또 번호가 주어졌을 때 로또의 최고 순위와 최저 순위를 출력으로 내는 문제이다.
낙서 된 부분은 0으로 표시되는데 0이 맞는 부분이면 맞은 부분이 0의 갯수만큼 +한 다음에 최고 순위를 구하고 0이 맞지 않는 부분이라면 0을 제외한 현재 로또 번호 중 맞는 부분의 갯수를 세어 최저 순위를 구한다.
순위 조건은 다음과 같고 6등 같은 경우는 따로 표기하기 위해 -1로 표현했다.
순위 | 당첨 내용 |
1 | 6개 번호가 모두 일치 |
2 | 5개 번호가 일치 |
3 | 4개 번호가 일치 |
4 | 3개 번호가 일치 |
5 | 2개 번호가 일치 |
6 | 그 외 |
def solution(lottos, win_nums):
answer = [0, 0]
equal_count = 0
zero_count = 0
RANK = {
"-1": 6 , "2": 5, "3": 4, "4": 3, "5": 2, "6": 1
}
for i in range(len(win_nums)):
if lottos[i] == 0:
zero_count += 1
for j in range(len(win_nums)):
if win_nums[i] == lottos[j]:
equal_count += 1
answer[0] = RANK[f"{equal_count + zero_count if equal_count + zero_count > 1 else -1}"]
answer[1] = RANK[f"{equal_count if equal_count > 1 else -1}"]
return answer
728x90
반응형
'~2023' 카테고리의 다른 글
[논문 리뷰] FaPN: Feature-Aligned Pyramid Network for Dense Image Prediction (0) | 2022.04.21 |
---|---|
[논문 리뷰] Residual Attention Network for Image Classification (0) | 2022.04.20 |
[Python] 신고 결과 받기 - 2022 KAKAO BLIND RECRUITMENT (0) | 2022.04.18 |
[Python] 신규 아이디 추천 - 2021 KAKAO BLIND RECRUITMENT (0) | 2022.04.18 |
[Python] 숫자 문자열과 영단어 - 2021 카카오 채용연계형 인턴십 (0) | 2022.04.18 |