카테고리 없음

[Lv. 2] 롤케이크 자르기

녱녱 2023. 10. 16.

목차

[Lv. 2] 롤케이크 자르기 - undefined - 모든 영역

import java.util.*;
class Solution {
    public int solution(int[] topping) {
        int answer = 0;
        
        Map<Integer, Integer> map_1 = new HashMap<>(); // 형
        Map<Integer, Integer> map_2 = new HashMap<>(); // 동생
        
        for (int t : topping) {
            map_2.put(t, map_2.getOrDefault(t, 0) + 1);
        }
        
        for (int t : topping) {
            map_1.put(t, map_1.getOrDefault(t, 0) + 1);
            
            if (map_2.get(t) - 1 == 0)
                map_2.remove(t);
            else
                map_2.put(e, map_2.get(t) - 1);  
            
            if (map_1.size() == map_2.size())
                answer++;
        }

        return answer;
    }
}

토핑의 종류와 개수를 관리(?) 하기 위해 map을 사용했다.

 

  1. 형/동생을 나타내는 map 선언 > topping 배열에 나타난 토핑 종류와 해당 토핑의 수량을 추적
  2. 각 토핑을 처리하면서 map_2에 해당 토핑의 수량을 누적
  3. map_1에 해당 토핑의 수량을 누적하고, 동시에 map_2에서 해당 토핑의 수량을 감소시킵니다.
  4. map_1과 map_2의 크기가 같아지는 경우, answer 값을 증가 > 형과 동생이 같은 수량의 토핑을 가지고 있음

댓글