====== 로또의 최고 순위와 최저 순위 ====== ===== 풀이 ===== * 최고 순위의 경우는 일치된 숫자의 갯수를 {실제 매칭된 숫자의 갯수} + {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)] {{tag>프로그래머스 ps:problems:programmers:Level_1}}