programmers_롤케이크 자르기_java

2023. 4. 16. 10:23Algorithm/Programmers

728x90

https://school.programmers.co.kr/learn/courses/30/lessons/132265

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

import java.util.*;

class Solution {
    public int solution(int[] topping) {
        int answer = 0;
        
        int toppingLength = topping.length;
        Map<Integer, Integer> map = new HashMap<>(); // 자른 이후 남은 것
        Set<Integer> set = new HashSet<>(); // 잘라서 만든것
        
        for(int i = 0; i<toppingLength; i++){
            map.put(topping[i], map.getOrDefault(topping[i], 0) + 1);
        }
        
        for(int i = 0; i<toppingLength; i++){
            set.add(topping[i]);
            map.put(topping[i], map.get(topping[i]) - 1);
            
            if (map.get(topping[i]) == 0) {
                map.remove(topping[i]);
            }
            if (set.size() == map.size()) {
                answer++;
            }
        }
        
        return answer;
    }
}