[프로그래머스] Lv2. 롤케이크 자르기 - JavaScript

이상돈·2023년 3월 13일
0
post-thumbnail

문제분류 : 코팅테스트 연습

난이도 : Level 2

출처 : 프로그래머스 - 롤케이크 자르기

문제

제한사항

📌 내가 생각한 풀이

처음에 한사람이 모든 케이크를 가지고 있다고 생각하고, 하나씩 뜯어주는 식으로 생각하자. set과 obj를 이용하여, 개수를 센다음, size를 비교하자.
function solution(topping) {
    var answer = 0;
    let me = new Set();
    let brother = new Set();
    let obj = {};
    topping.map((data)=>{
        me.add(data);
        if(obj[data] === undefined){
            obj[data] = 1
        }else{
            obj[data]++;
        }
    })
    topping.map((d)=>{
        if(obj[d] >= 1){
            obj[d]--;
            brother.add(d);
        }
        if(obj[d] === 0){
            me.delete(d);
        }
        if(me.size === brother.size){
            answer++;
        }
    })
    return answer;
    
}

📌 느낀점

처음에는 set만 이용하여, 토핑 개수를 셌는데, 엄청난 시간초과가 걸렸다. 문제에서 만든 obj같은 해쉬테이블을 만들어주어 문제를 해결하였더니, 효과적인 시간단축을 가질 수 있었다. 해쉬테이블의 중요성을 다시 한번 깨달았다.

profile
사람들의 더 나은 삶을 위한 개발자

0개의 댓글