"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."


[코딩테스트] 로또의 최고 순위와 최저 순위 - 프로그래머스
728x90

 

프로그래머스 코딩 테스트 L1 문제인 로또의 최고 순위와 최저 순위 문제의 파이썬 풀이 입니다.

 

1. 로또의 최고 순위와 최저 순위 문제

문제 설명

 

제한사항

 

입출력

 

https://programmers.co.kr/learn/courses/30/lessons/77484

 

코딩테스트 연습 - 로또의 최고 순위와 최저 순위

로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호

programmers.co.kr

반응형

 

로또의 최고 순위와 최저 순위 문제 풀이 아이디어

0은 당첨번호로 바꿀 수 있기 때문에 0을 win_nums에서 맞춘 개수가 최저 순위가 되고, 최저 순위에서 0의 개수만큼 더하면 최고 순위가 된다. 

  • 최저순위: 맞춘 개수
  • 최고순위: 맞춘 개수 + 0의 개수

 

로또의 최고 순위와 최저 순위 문제 풀이 코드

def solution(lottos, win_nums):
    answer = []
    count = 0 
    
    result = {6:1, 5:2, 4:3, 3:4, 2:5, 1:6, 0:6}

    for num in win_nums:
        if num in lottos:
            count += 1

    answer = [result[count+lottos.count(0)], result[count]]
 
    return answer

 

맞춘 개수를 순위로 변환할 수 있게 키가 맞춘 개수, 값이 순위로 해서 딕셔너리를 생성합니다. 

리턴값은 [최고순위, 최소순위]의 리스트이므로 맞춘 개수를 카운팅하여 리스트의 두번째 값에넣고, 맞춘 개수 + 0의 개수를 첫번째 값으로 넣습니다. 해당 값으로 result 딕셔너리에 접근하면 순위를 얻을 수 있습니다.

 

이상 프로그래머스 로또의 최고 순위와 최저 순위 문제 풀이 과정을 마칩니다.

 

728x90
728x90
LIST