2021 Dev-Matching: 웹 백엔드 개발자(상반기)
https://programmers.co.kr/learn/courses/30/lessons/77484
지문은 굉장히 길지만..
결국 최고순위는 보이지 않는 번호를 모두 맞췄을 경우이고,
최저순위는 보이지 않는 번호를 모두 틀렸을 경우이다.
맞춘 개수에 따른 결과값을 위해 switch문을 사용하거나 간단한 배열을 만들 수 있음.
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]]
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가 좀 더 편한듯 함.