https://programmers.co.kr/learn/courses/30/lessons/77484
function solution(lottos, win_nums) {
var answer = '';
let countZero = lottos.filter(x => 0 == x).length;
let count = lottos.filter(x => win_nums.includes(x)).length;
let big = count + countZero;
let small = count;
let result = {
0: 6,
1: 6,
2: 5,
3: 4,
4: 3,
5: 2,
6: 1,
};
big = result[big];
small = result[small];
let rank = [];
rank.push(big);
rank.push(small);
answer = rank
return answer
}
0의 갯수와 두 개 배열을 비교해서 일치하는 갯수를 세고,
갯수에 따라 최대인 경우는 일치하는거 + 0의 갯수, 최소인 경우는 그냥 일치하는 갯수.
그래서 그 갯수에 따라 등수를 나눔.
❗ 주의 출력시 그냥 console.log('${big} ${small}')했다가 틀렸다고 나옴.
배열에 넣어서 그 배열을 그대로 출력하니 성공.
function solution(lottos, win_nums) {
var answer = [];
let count = 0;
let countZero = 0;
for (var i = 0; i < 6; i++){
if (lottos[i] == 0) {
countZero++;
continue;
}
for(var j=0;j<6;j++){
if(lottos[i] == win_nums[j]){
count++;
}
}
}
// console.log('count : ' + count);
// console.log('countZero : ' + countZero);
let rank=0;
let big = count + countZero;
// console.log('big : ' + big);
switch (big) {
case 1: rank = 6; break;
case 2: rank = 5; break;
case 3: rank = 4; break;
case 4: rank = 3; break;
case 5: rank = 2; break;
case 6: rank = 1; break;
default: rank = 6; break;
}
answer.push(rank);
let small = count;
switch (small) {
case 1: rank = 6; break;
case 2: rank = 5; break;
case 3: rank = 4; break;
case 4: rank = 3; break;
case 5: rank = 2; break;
case 6: rank = 1; break;
default: rank = 6;
}
answer.push(rank);
return answer;
}
filter()를 활용하여 두 배열에서 일치하는 것을 가져와 그 길이를 세서
반복문을 filter 한 줄로 변경.
let countZero = lottos.filter(x => 0 == x).length;
let count = lottos.filter(x => win_nums.includes(x)).length;
switch문으로 등급 나누던 작업을 dictionary를 이용하여 변경.
key와 value를 저장하여 해당 key에대한 value(등수)를 저장함.
let result = {
0: 6,
1: 6,
2: 5,
3: 4,
4: 3,
5: 2,
6: 1,
};
big = result[big];
small = result[small];