본인이 한 정답 풀이다.
말그대로 깔끔하지 못하다... APIs를 사용하고 싶었지만 숙달이 부족하다. 그래도 통과에 의의를 두자..
function solution(lottos, win_nums){
let result = [];
for(let i = 0; i < win_nums.length; i++){
let correct = lottos.indexOf(win_nums[i]);
if(correct > -1){
result += i
}
}
console.log(result.length)
let zeroCnt = 0;
for(let i = 0; i<lottos.length; i ++){
if(lottos[i] === 0){
zeroCnt ++;
}
}
console.log(zeroCnt)
let highScore = result.length + zeroCnt;
let lowScore = result.length;
const answer = [];
switch(highScore){
case 6 : answer[0] = 1
break;
case 5: answer[0] = 2
break;
case 4: answer[0] = 3
break;
case 3: answer[0] = 4
break;
case 2: answer[0] = 5
break;
default : answer[0] = 6
break;
}
switch(lowScore){
case 6 : answer[1] = 1
break;
case 5: answer[1] = 2
break;
case 4: answer[1] = 3
break;
case 3: answer[1] = 4
break;
case 2: answer[1] = 5
break;
default : answer[1] = 6
break;
}
console.log(answer)
}
let lottos = [44,1,0,0,31,21]
let win_nums = [31,10,45,1,6,19]
solution(lottos,win_nums)
다음 아래의 코드는 최고의 풀이다.
function solution(lottos, win_nums) {
const rank = [6, 6, 5, 4, 3, 2, 1];
let minCount = lottos.filter(v => win_nums.includes(v)).length;
let zeroCount = lottos.filter(v => !v).length;
const maxCount = minCount + zeroCount;
return [rank[maxCount], rank[minCount]];
}