프로그래머스 Lv1. 로또의 최고 순위와 최저 순위

용상윤·2021년 4월 30일
0

문제

2021 Dev-Matching: 웹 백엔드 개발자(상반기)
https://programmers.co.kr/learn/courses/30/lessons/77484


접근

지문은 굉장히 길지만..

  1. 결국 최고순위는 보이지 않는 번호를 모두 맞췄을 경우이고,

  2. 최저순위는 보이지 않는 번호를 모두 틀렸을 경우이다.

  3. 맞춘 개수에 따른 결과값을 위해 switch문을 사용하거나 간단한 배열을 만들 수 있음.


코드

python

def solution(lottos, win_nums):
    rank = [6, 6, 5, 4, 3, 2, 1]
    
    num = 0
    unKnown = 0
    
    for i in lottos :
        if i in win_nums :
            num += 1
        elif i == 0 :
            unKnown += 1
    
    return [rank[num+unKnown], rank[num]]
    
    

js

function solution(lottos, win_nums) {
    
    function rank(num){
        switch(num){
            case 6 :
                return 1;
                break;
            case 5 :
                return 2;
                break;
            case 4 :
                return 3;
                break;
            case 3 :
                return 4;
                break;
            case 2 :
                return 5;
                break;
            default :
                return 6;
                break;
        }
    }
    
    let num = 0;
    let unKnown = 0;
    lottos.forEach(n => {
        if( win_nums.indexOf(n) !== -1 ){
            num++;
        } else if(n === 0){
            unKnown++;
        }
    })
    let high = num + unKnown;
    let low = num;
    
    return [rank(high), rank(low)];
    
}

✍ 메모

js에서 인덱스값을 찾는 함수는 indexOf()가 있고, python에서는 index()가 있는데,

js의 indexOf() 는 찾는 값이 없다면 -1 을 리턴하지만(리턴값이 있지만) python의 index()는 에러가 난다.. 이럴때는 js가 좀 더 편한듯 함.

profile
달리는 중!

0개의 댓글