Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 백준1697
- 단어 수학
- 프로그래머스
- 전기 요금
- 124 나라의 숫자
- 코딩테스트
- 백준1339
- 백준12904
- 백준1788
- Smart Commit
- 백준
- 백준2573
- 인구 이동
- 부스트캠프
- 백준5710
- 백준16234
- 백준 2564
- 키패드 누르기
- 경비원
- 움직이는 미로 탈출
- 로또의 최고 순위와 최저 순위
- 소수 만들기
- 빙산
- 백준 14499
- 백준16954
- 피보나치 수의 확장
- 파이썬
- 완주하지 못한 선수
- A와 B
- 백준3190
Archives
- Today
- Total
Today.dev
[PG_77484/Python] 로또의 최고 순위와 최저 순위 본문
문제
코딩테스트 연습 - 로또의 최고 순위와 최저 순위
로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호
programmers.co.kr
풀이
일치하는 번호와 모르는 번호로 최고, 최저 순위를 만든다.
1. 일치하는 번호 개수 -> 최저 당첨
2. 일치하는 번호 개수 + 모르는 번호 개수 -> 최고 당첨
lottos, win_nums 리스트의 원소가 전부 다르다고 해도 선택할 수 있는 번호의 범위가 33개나 된다. 번호가 부족해서 선택할 수 없는 경우는 없다.
def solution(lottos, win_nums):
# 1. 일치하는 번호 -> 최저 순위
common = set(lottos).intersection(set(win_nums))
lowest = len(common)
# 2. 일치하는 번호 + 모르는 번호 -> 최고 순위
num = lottos.count(0)
highest = len(common) + num
grade = [6, 6, 5, 4, 3, 2, 1]
answer = [grade[highest], grade[lowest]]
return answer
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[PG_42746/Python] 가장 큰 수 (0) | 2021.07.03 |
---|---|
[PG_12899/Python] 124 나라의 숫자 (0) | 2021.07.03 |
[PG_67256/Python] 키패드 누르기 (0) | 2021.06.22 |
[PG_42576/Python] 완주하지 못한 선수 (0) | 2021.06.22 |
[PG_12977/Python] 소수 만들기 (0) | 2021.06.22 |