본문 바로가기
코딩테스트 문제집/Programmers(Lv2)

[Programmers] Lv2: 롤케이크 자르기(132265)

by cogito30 2025. 2. 12.
반응형

문제

- 링크: https://school.programmers.co.kr/learn/courses/30/lessons/132265?language=java

 

풀이

더보기
import java.util.*;

class Solution {
    public int solution(int[] topping) {
        int answer = 0;
        HashMap<Integer, Integer> toppingCount = new HashMap<>();
        
        for (int i = 0; i < topping.length; ++i) {
            toppingCount.put(topping[i], toppingCount.getOrDefault(topping[i], 0) + 1);
        }
        
        HashSet<Integer> toppingChulsu = new HashSet<>();
        for (int i = 0; i < topping.length; ++i) {
            toppingChulsu.add(topping[i]);
            toppingCount.put(topping[i], toppingCount.getOrDefault(topping[i], 0) - 1);
            
            if (toppingCount.get(topping[i]) == 0) {
                toppingCount.remove(topping[i]);
            }
            
            if (toppingChulsu.size() == toppingCount.size()) {
                answer += 1;
            }
        }
        
        return answer;
    }
}

 

반응형