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

김지원·2021년 8월 24일
0

coding-test

목록 보기
6/25
post-thumbnail

📖 문제 링크

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

📃 문제 설명

로또의 당첨 번호와 일치하는 번호가 있다면 맞힌 걸로 인정하여 순위를 구하는 문제이다.

거기서 알아볼 수 없는 번호가 있고 그 번호를 예측하여 최고 순위와 최저 순위를 찾아야 한다.

📃 조건

  • 최고 순위와 최저 순위로 배열에 담아 출력
  • lottos의 길이는 6
  • 0은 알아볼 수 없는 숫자를 의미

👨‍💻 문제 풀이

python

def solution(lottos, win_nums):
    
    rank = [6,6,5,4,3,2,1]
    count = 0
    zero_count = 0
    
    for num in lottos:
        if num == 0:
            zero_count += 1
            continue
            
        for win_num in win_nums:
            if num == win_num:
                count += 1
    
    high_score = rank[zero_count + count]
    low_score = rank[count]
    
    return [high_score, low_score]

javascript

function solution(lottos, winNums) {
    let count = 0;
    let zero = 0;
    
    lottos.forEach((num) => {
        if (winNums.includes(num)) count++;
        if (num === 0) zero++;
    });
    
    let high = (7 - (count + zero));
    let low = (7 - count);
    
    if (zero === 6) low--;
    if (count === 0 && zero === 0) {
        high--;
        low--;
    }
    
    return [high, low];
}

파이썬으로 풀 때는 rank를 미리 정해두고 그 곳에 맞는 위치를 찾았다면 js에서는 맞은 숫자를 카운트 하는 식으로 풀었다.

2021.08.23

profile
backend-developer

0개의 댓글