본문 바로가기
알고리즘

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

by Rudy 2022. 5. 17.

 

 


문제


 

 

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

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

programmers.co.kr


순서에 상관없이 구매한 로또에 당첨 번호와 일치하는 번호가 있으면 맞힌 걸로 인정

민우가 구매한 로또 번호를 담은 배열 lottos, 당첨 번호를 담은 배열 win_nums가 매개변수

 


코드


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

    for i in lottos:
        if i==0:
            count+=1
        if i in win_nums:
            ans_cnt+=1

    result=count+ans_cnt
    answer[0]=rank[result]
    answer[1]=rank[ans_cnt]

    return answer

#print(solution([44, 1, 0, 0, 31, 25],[31, 10, 45, 1, 6, 19]))

풀이법


rank에 로또 순위를 담는 배열을 만들어서 초기화 한다.

 

lottos만큼 반복문 돌면서 만약 민우가 구매한 로또 번호 중에 0이 있으면 count 증가시킨다.

 

그리고 민우가 구매한 로또 번호랑 당첨 번호가 같을 때는 ans_cnt를 증가시킨다.

 

여기서 가장 최저 순위는 민우가 구매한 로또 번호 0이 전부 당첨 번호가 아닐 경우이다. 그러므로 최저 순위를 출력하는 answer[1] 자리에 ans_cnt 만큼의 순위로 바꿔주면 된다.

 

그리고 가장 최고 순위는 민우가 구매한 로또 번호 0이 전부 당첨 번호일 경우이다. 그러므로 최고 순위를 출력하는 answer[0] 자리에 ans_cnt와 0 갯수만큼을 더한 값 만큼의 순위로 바꿔주면 된다.

 

.

'알고리즘' 카테고리의 다른 글

프로그래머스-폰켓몬  (0) 2022.05.26
프로그래머스-신규 아이디 추천  (0) 2022.05.25
DFS/BFS  (0) 2021.07.06
구현  (0) 2021.07.05
코테 공부- 그리디 알고리즘  (0) 2021.07.03

댓글