Coding Test/JavaScript
[Javascript] (프로그래머스 level 1) 로또의 최고 순위와 최저 순위
Chaedie
2022. 7. 6. 09:39
728x90
[Javascript] (프로그래머스 level 1) 로또의 최고 순위와 최저 순위
💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다.
내 풀이
function solution(lottos, win_nums) {
// 배열 두개 비교해서 같은 넘버인놈 갯수 카운트,
// 최저는 카운트 등수
// 최고는 카운트 + 0의 갯수 등수
let zeros = lottos.filter((x) => x === 0).length;
let count = 0;
for (let winNum of win_nums) {
for (let pickNum of lottos) {
if (pickNum === winNum) {
count++;
}
}
}
let result = [6, 6, 5, 4, 3, 2, 1];
return [result[count + zeros], result[count]]
}
다른 사람 풀이
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]];
}
let zeroCount = lottos.filter(v => !v).length;
- filter(v ⇒ !v) 로 제로 걸러내는건 좀 신기하네요
배운 점, 느낀 점
- 성능면에선 포문 두개 돌리는게 조금 더 빠를것 같지만…
- 가독성 면에선 includes로 걸러내는게 훨씬 좋네요.