오늘 뭐했냐/기억하면 좋을 문제들

Map활용해보기

스스로에게 2023. 6. 17. 18:33

내용은 너무 길고 로또 맞추기 문제이다 번호가 몇개 지워졌을 때 최소 몇등 최대 몇등일 수 있냐는건데 

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를 활용해 풀었다 

 

다른 메서드를 많이 활용해서 짧은 코드로 푼 경우도 있지만 속도면에서는 이게 훨씬 빠를 것으로 예상되고 어제 배운 것을 활용해봤기에 만족스럽다 

 

체감이 크진 않지만 놀지 않고 꾸준히 성장하기 위한 노력을 하고 있다는 게 느껴진다