[프로그래머스/Python] 로또의 최고 순위와 최저 순위
● 문제
- 민우가 구매한 로또 번호를 담은 배열 lottos, 당첨 번호를 담은 배열 win_nums가 매개변수로 주어집니다. 이때, 당첨 가능한 최고 순위와 최저 순위를 차례대로 배열에 담아서 return 하도록 solution 함수를 완성해주세요.
● 소스코드
def solution(lottos, win_nums):
answer = []
zero_num = 0 # 0의 갯수
correct_num = 0 # 맞춘 갯수
for i in lottos:
if i == 0:
zero_num += 1
continue
elif i in win_nums != -1:
correct_num += 1
# 최대 순위 : 맞춘갯수 + 0 갯수 만큼 맞춤
# 최소 순위 : 맞춘갯수 만큼 맞춤
answer = [min(7-(correct_num + zero_num),6), min(7-correct_num,6)]
return answer
● 풀이
- 특별한 알고리즘은 없다.
- 문제의 제한사항을 잘 참고하여 최대 순위와 최소 순위를 구하면 된다.
- 최대 순위 : 기존 순위(알고 있는 숫자로 구한 순위) + 모르는 숫자가 모두 맞았을 때
- 최소 순위 : 기존 순위(알고 있는 숫자로 구한 순위)
* https://programmers.co.kr/learn/courses/30/lessons/77484
코딩테스트 연습 - 로또의 최고 순위와 최저 순위
로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호
programmers.co.kr
'알고리즘 > 프로그래머스(Python)' 카테고리의 다른 글
[프로그래머스/Python] 완주하지 못한 선수 (0) | 2021.10.04 |
---|---|
[프로그래머스/Python] 음양 더하기 (0) | 2021.10.04 |
[프로그래머스/Python] 콜라츠 추측 (0) | 2021.10.03 |
[프로그래머스/Python] 평균 구하기 (0) | 2021.10.03 |
[프로그래머스/Python] 핸드폰 번호 가리기 (0) | 2021.10.03 |
댓글