[프로그래머스 Lv.2] 연습문제 - 롤케이크 자르기

김민지·2024년 1월 21일
0

✨ 문제 ✨

✨ 정답 ✨



function solution(topping) {
    var answer = 0;
    var littleMap = new Map();
    var bigMap = new Map();
    for(var i =0;i<topping.length;i++){
        if(bigMap.has(topping[i])){
            bigMap.set(topping[i],bigMap.get(topping[i])+1);  
        }
        else{
            bigMap.set(topping[i],1);  
        }
    }

    for(var i =0;i<topping.length;i++){
        
        if(bigMap.get(topping[i])===1){
            bigMap.delete(topping[i]);
        }
        else{
            bigMap.set(topping[i],bigMap.get(topping[i])-1); 
        }
        if(littleMap.has(topping[i])){
            littleMap.set(topping[i],littleMap.get(topping[i])+1);  
        }
        else{
            littleMap.set(topping[i],1);  
        }

        if(bigMap.size===littleMap.size){
            answer++;
        }

    }
    return answer;
}

// 시간초과
// function solution(topping) {
//     var answer = 0;
//     let toppings=new Set(topping);
//     let one=[];
//     let two=[]
//     for (let i=0;i<topping.length;i++){
//         let copyTopping=topping.slice();
//         one.push(topping[i])
//         two=copyTopping.splice(i+1,)
//         let oneNumber=new Set(one);
//         let twoNumber=new Set(two)
//             if(oneNumber.size===twoNumber.size){
//                 answer+=1;
//             }
//         else{
//             continue;
//         }     
//     }    
//     return answer;
// }

🧵 참고한 정답지 🧵

https://velog.io/@sean2337/Programmers%EB%A1%A4%EC%BC%80%EC%9D%B4%ED%81%AC-%EC%9E%90%EB%A5%B4%EA%B8%B0-JavaScript
이중 for문이 아닌데도 시간초과 나는 것은 너무한게 아닌가...

💡💡 기억해야 할 점 💡💡

profile
이건 대체 어떻게 만든 거지?

0개의 댓글

관련 채용 정보