연습장

5. 로또의 최고 순위와 최저 순위 본문

프로그래머스/1단계

5. 로또의 최고 순위와 최저 순위

js0616 2023. 12. 11. 21:01

문제 해석

 

 

기존의 로또와 다르지만 아무튼 문제를 풀어보자면 

 

lottos : 구입한 로또 번호

win_nums : 당첨된 로또 번호

0 -> 알수 없는 숫자

 

0 이 아닌 숫자에 대해서는 고정된 값이며 0 에는 어떤 숫자든지 들어갈수 있고

이를 이용하여 최고 순위, 최저 순위를 예상해보자는 문제이다.

 


풀이 방법

 

1. 0 의 갯수를 확인한다. 

2. 0을 뺀 나머지 숫자중에서 몇개가 일치하는지 확인한다.

3. 최고와 최저에 대해서 계산해본다. 

 

순위를 매기는 방법을 보니까

 

6개가 일치하면 1등

5개가 일치하면 2등

 

만약 7에서 일치할때마다 1씩 뺸다면 다음과 같이 순위를 매길 수 있으며

확정된 숫자에 대해서 먼저 순위를 매기고 나머지 0의 갯수만큼 예상 순위 처리를 해주면 된다. 

 

+ 전부다 틀릴경우 7위가 되게 되므로 -> 6 위로 고쳐준다.

 


def solution(lottos, win_nums):
    answer = []
    grade = 7
    zero_num = 0


    for num in lottos:
        # 숫자가 0 이면 
        if num == 0:
            zero_num +=1
        # 0 이아니고
        else :
            # 당첨번호에 존재하면
            if num in win_nums:
                grade -= 1
                
        
    # 최고 순위
    # 지워진 숫자만큼 반영        
    answer.append(grade-zero_num)

    # 최저 순위
    answer.append(grade)
    
    # 7 등이 나올경우 6등으로 변환 
    if answer[0] == 7:
        answer[0] = 6
    
    if answer[1] == 7:
        answer[1] = 6

    return answer

'프로그래머스 > 1단계' 카테고리의 다른 글

7. 체육복  (0) 2023.12.12
6. 숫자 짝궁  (0) 2023.12.12
4. 옹알이2  (0) 2023.12.11
3. 기사단원의 무기  (0) 2023.12.11
2. 폰켓몬  (0) 2023.12.11