ps:problems:programmers:77484
목차
로또의 최고 순위와 최저 순위
ps | |
---|---|
링크 | programmers.co.kr/… |
출처 | 프로그래머스 |
문제 번호 | 77484 |
문제명 | 로또의 최고 순위와 최저 순위 |
레벨 | Level 1 |
분류 |
기초 |
시간복잡도 | O(1) |
사용한 언어 | Python |
해결날짜 | 2021/07/05 |
출처 |
ps:problems:programmers:2021_dev-matching_-_웹_백엔드_개발자_상반기 |
풀이
- 최고 순위의 경우는 일치된 숫자의 갯수를 {실제 매칭된 숫자의 갯수} + {0의 갯수} 로 놓고 순위를 계산하면 되고, 최저 순위의 경우는 {실제 매칭된 숫자의 갯수}만 일치된 숫자로 간주해서 순위를 구하면 된다.
- 시간 복잡도는 로또의 숫자 갯수에 비례한다. 6개로 고정되어 있으므로 그냥 O(1)
코드
"""Solution code for "Programmers 77484. 로또의 최고 순위와 최저 순위".
- Problem link: https://programmers.co.kr/learn/courses/30/lessons/77484
- Solution link: http://www.teferi.net/ps/problems/programmers/77484
"""
def rank(match_count):
return min(6, 7 - match_count)
def solution(lottos, win_nums):
match_count = sum(1 for num in lottos if num in set(win_nums))
return [rank(match_count + lottos.count(0)), rank(match_count)]
ps/problems/programmers/77484.txt · 마지막으로 수정됨: 2021/07/08 16:17 저자 teferi
토론