[ 프로그래머스 ] #132265 : 롤케이크 자르기 - JAVA

🔗롤케이크 자르기

import java.util.*;
class Solution {
    public int solution(int[] topping) {
        int n= topping.length;

        Map<Integer, Integer> rightCnt= new HashMap<>();
        for(int t: topping){
            rightCnt.put(t, rightCnt.getOrDefault(t,0)+1);
        }

        Set<Integer> leftCnt = new HashSet<>();
        int leftKind=0;
        int rightKind=rightCnt.size();
        int answer=0;

        for(int i=0; i< n-1;i++){
            int t= topping[i];

            if(leftCnt.add(t)){
                leftKind++;
            }

            int cnt=rightCnt.get(t)-1;
            if(cnt==0){
                rightCnt.remove(t);
                rightKind--;
            }else{
                rightCnt.put(t,cnt);
            }

            if(rightKind==leftKind)answer++;
        }
        return answer;
    }
}