Algorithm/프로그래머스

[Python] 로또의 최고 순위와 최저 순위

내영잉 2021. 5. 5. 23:54

1. 문제 📚

 

2. 입출력 예 📋

3. 알고리즘 ✅

  • wins_num에는 같은 숫자가 담겨있지 않으므로, 0이 모두 맞으면, 최고 순위가 된다
  • 최저순위는 0이 모두 안맞고, win_nums과 같은 숫자의 갯수가 최저 개수가 된다. 
  • 2개가 일치하는 것부터 순위를 주고, 나머지는 6위이므로 index를 맞은 갯수로 생각하고 리스트를 만들어 준다

  • 따라서 최고 순위 = 일치하는 번호 갯수 + 0의 갯수
  • 최저 순위 = 일치하는 번호 갯수

4. 소스코드 💻

def solution(lottos, win_nums):
	answer = 0
	rank = [6, 6, 5, 4, 3, 2, 1]
    cnt_0 = lottos.count(0)
    
    for num in win_nums:
    	if num in lottos:
        	answer += 1
            
    return rank[cnt_0 + answer],rank[answer]