728x90
반응형
문제
풀이
function solution(lottos, win_nums) {
var answer = [];
let count = 0;
let countAdd = 0;
let rank = 0;
let lottosSort = lottos.sort((a,b) => {return b-a});
let winNumsSort = win_nums.sort((a,b) => {return b-a});
const rankValid = () => {
if(count === 6) return rank = 1;
else if(count === 5) return rank = 2;
else if(count === 4) return rank = 3;
else if(count === 3) return rank = 4;
else if(count === 2) return rank = 5;
else return rank = 6;
}
if(lottosSort.find(ele => ele === 0) === 0) {
if(lottosSort.find(ele => ele !== 0)) {
for(let i = 0; i < 6; i++) {
if(winNumsSort.find(ele => ele === lottosSort[i])) {
// console.log(count);
winNumsSort.splice(i,1);
count++;
} else {
if(lottosSort[i] === 0) {
countAdd++;
}
}
}
rankValid();
answer.push(rank);
count += countAdd;
rankValid();
answer.splice(0,0,rank);
rank = 0;
count = 0;
} else {
answer.push(1,6);
}
} else {
for(let i =0; i < 6; i++){
if(lottosSort[i] === winNumsSort[i]) {
count++;
}
}
rankValid();
answer.push(rank, rank);
rank = 0;
}
return answer;
}
[내 풀이]
function solution(lottos, win_nums) {
var answer = [];
const correct = lottos.filter(lotto => win_nums.includes(lotto)).length;
const test = lottos.filter(ele => ele)
const zeros = lottos.filter(lotto => lotto === 0).length;
console.log(correct, zeros);
let min = 7-correct >= 6 ? 6 : 7-correct;
let max = min-zeros < 1 ? 1 : min-zeros;
answer = [max, min]
return answer;
}
[다른분의 풀이]
문제를 풀면서도 이것은 이상적인 풀이가 아님을 너무나도 알 수 있었습니다 (제일 위험하고 안 좋은 징조)
다른 분의 풀이와 비교해보니 감탄을 금치 못 했고 제 풀이는 너무나도 초라했습니다
꾸준한 알고리즘 풀이로 사고력을 증진시켜야겠다는 생각이 더욱 많이 들었습니다
728x90
반응형
'Study > 알고리즘' 카테고리의 다른 글
[프로그래머스] 가장 큰 수 (Javascript) (0) | 2022.06.09 |
---|---|
[프로그래머스] 기능개발 (Javascript) (0) | 2022.06.03 |
[프로그래머스] K번째수 (Javascript) (0) | 2022.02.19 |
시간 복잡도란? (0) | 2022.01.29 |
[백준] 18258 큐2 JavaScript (0) | 2021.09.13 |