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인 개수 세기
2. 로또와 일치하는 번호 개수 세기(실제로 로또의 번호들이 무엇인지는 상관 없음) - set 집합 함수와 &연산자 이용
3. 1번과 2번을 이용한 worst_rank, best_rank 구하기
- dictionary나 새로운 판별 함수를 쓸까 하다가, 7에서 빼는 방법으로 사용
def solution(lottos, win_nums):
answer = []
count_zero = lottos.count(0) #사라져서 보기 힘든 번호
matching_nums = len(set(lottos) & set(win_nums)) #로또 번호와 일치하는 번호
worst_rank = 7-matching_nums
best_rank = 7-(matching_nums+count_zero)
if worst_rank >=6 :
worst_rank = 6
#case 14 실패
if best_rank >= 6 :
best_rank = 6
answer.append(best_rank)
answer.append(worst_rank)
return answer
case14만 실패!
- 로또와 맞는 번호도 없고 0인 번호도 없을 때 best_rank 도 처리해주는 조건 필요
'Python > CoTe' 카테고리의 다른 글
[programmers] 같은 숫자는 싫어 (0) | 2022.02.22 |
---|---|
[programmers] 정렬 내림차순 정렬 (0) | 2022.02.21 |
[programmers] 없는 숫자 더하기 (0) | 2022.02.21 |
[programmers] 최소 직사각형 (0) | 2022.02.21 |
[programmers] 문자열 내 마음대로 정렬하기 (0) | 2022.02.21 |