프로그래머스

프로그래머스 로또의 최고 순위와 최저 순위 파이썬

띵지니어 2021. 8. 9. 13:13
반응형

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

 

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

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

programmers.co.kr

 

내코드

def solution(lottos, win_nums):
    answer = []
    count = 0
    rate = [6,6,5,4,3,2,1]
    NoSee = lottos.count(0)
    for i in range(len(lottos)):
        if win_nums[i] in lottos:
            count += 1
    answer.append(rate[count + NoSee])
    answer.append(rate[count])
    return answer

Review

 

맞은 숫자만큼 당첨 등수는 고정이라서 리스트로 만들어 주고 시작을 하였다.

로또 개수만큼 for 문을 돌려 같은 수가 있는지 없는지 찾아보고, 같은 수만큼 count를 올려주었다.

그리고 0의 개수를 세서 최대 등수와 최저 등수를 answerappend 해주고 리턴해주는 함수를 만들었다.

.

.

.

다음은 좋아요가 가장 많이 받은 풀이인데, 내 풀이와 거의 유사 한 코드였다.

def solution(lottos, win_nums):

    rank=[6,6,5,4,3,2,1]

    cnt_0 = lottos.count(0)
    ans = 0
    for x in win_nums:
        if x in lottos:
            ans += 1
    return rank[cnt_0 + ans],rank[ans]

내 코드와 비슷하지만 훨씬 더 효율 적이게 코드를 작성 하신 것 같다.

반응형