본문 바로가기
Exercises 🤓/Python

[프로그래머스] 로또의 최고 순위와 최저 순위 - Python

by 째파 2022. 6. 16.
반응형

다른 프로젝트하느라 손에서 놓아버린지 오래된 Python을 다시 공부하기 위해 오랫만에 프로그래머스에서 문제를 풀어보았다. 프로그래머스는 한글 문제이고 카카오의 기출문제들이 제공되어서 공부해보기 좋은 사이트 같다! 물론 코딩테스트를 준비한다면 Leetcode나 백준알고리즘 등등 다른 사이트도 이용해보면 좋겠지만...

 


🤔 문제

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

 

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

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

programmers.co.kr

2021년도 Dev-Matching 문제로 Level 1임...

 

😄 나의 풀이

def solution(lottos, win_nums):
    answer = []
    
    match_num = 0
    for i in lottos :
        if i in win_nums :
            match_num += 1
    
    match_max = match_num + lottos.count(0)
    
    for j in [match_max, match_num] :
        if j > 1 :
            answer.append(7-j)
        else :
            answer.append(6)
    
    return answer

간만의 코딩이라 진짜로.... 쉬워보이는 Level 1 했더니 정말... 창피! ^0^

쉬운 문제여서 금방풀긴 했지만 for문 2개가 있어서 허접해보이는 코드가 완성됬다.

아니 암튼 이걸보여주려던게 아니구...

 

🤩 Best 풀이

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]

사실 이 게시글을 쓰게 된 이유 !

다른 분들의 풀이법을 보다가 이 풀이를 보고 진짜 무릎을 탁 쳤다.

와 아무리 쉬운 문제여도 이렇게 훨씬 간단하게 풀 수 있었는데..

역시 생각을 어떻게 하는가가 코드 스타일에 큰 영향을 미치는 것 같다.

얼른 연습 많이많이 해둬야지 ㅠㅠ

반응형

댓글