사용자 도구

사이트 도구


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)]

토론

댓글을 입력하세요:
I K J K S
 
ps/problems/programmers/77484.txt · 마지막으로 수정됨: 2021/07/08 16:17 저자 teferi