![[Lv. 2] 롤케이크 자르기 - undefined - 모든 영역 [Lv. 2] 롤케이크 자르기 - undefined - 모든 영역](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
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을 사용했다.
- 형/동생을 나타내는 map 선언 > topping 배열에 나타난 토핑 종류와 해당 토핑의 수량을 추적
- 각 토핑을 처리하면서 map_2에 해당 토핑의 수량을 누적
- map_1에 해당 토핑의 수량을 누적하고, 동시에 map_2에서 해당 토핑의 수량을 감소시킵니다.
- map_1과 map_2의 크기가 같아지는 경우, answer 값을 증가 > 형과 동생이 같은 수량의 토핑을 가지고 있음
댓글