내용은 너무 길고 로또 맞추기 문제이다 번호가 몇개 지워졌을 때 최소 몇등 최대 몇등일 수 있냐는건데
function solution(lottos, win_nums) {
let map = new Map(), rank=[6,6,5,4,3,2,1], down=0
for (let i = 0; i < win_nums.length; i++) {
let a = lottos[i],
b = win_nums[i];
map.set(a, (map.get(a) || 0) + 1);
map.set(b, (map.get(b) || 0) - 1);
}
map.forEach((v)=>{
if(v===0) down++
})
if(!map.get(0)) map.set(0,0)
return [rank[down+map.get(0)],rank[down]];
}
어제 했던 Map를 활용해 풀었다
다른 메서드를 많이 활용해서 짧은 코드로 푼 경우도 있지만 속도면에서는 이게 훨씬 빠를 것으로 예상되고 어제 배운 것을 활용해봤기에 만족스럽다
체감이 크진 않지만 놀지 않고 꾸준히 성장하기 위한 노력을 하고 있다는 게 느껴진다
'오늘 뭐했냐 > 기억하면 좋을 문제들' 카테고리의 다른 글
생각을 넓히자 (0) | 2023.06.23 |
---|---|
정규 표현식 연계 (0) | 2023.06.21 |
객체 구조를 활용한 배열 빼기 (0) | 2023.06.16 |
Set 자료구조로 문자열 전달 (0) | 2023.06.15 |
for문에서 특정 숫자로 반복이 필요할 때 (0) | 2023.06.15 |