반응형
https://school.programmers.co.kr/learn/courses/30/lessons/132265?language=java
[문제요약]
- 철수와 동생이 롤케이크를 두 조각으로 잘라서 한조각씩 나눠 먹으려 한다.
- 롤케이크의 크기보다 롤케이크 위에 올려진 토핑들의 종류에 더 관심이 많다.
- 잘린 조각의 크기와 올려진 토핑의 개수에 상관없이 각 조각에 동일한 가짓수의 토핑이 올라가면 공평하게 롤케이크가 나누어진 것이다.
[문제풀이]
저는 먼저 철수와 동생의 해쉬맵을 만들어줬습니다. 각각의 토핑의 개수를 저장하기 위해서요!
일단은 한 곳에 토핑을 몰아 넣어 저장한 뒤, 하나씩 토핑을 다른 해쉬맵에 전달하면서 같은 토핑의 종류 개수가 나올 시 answer의 값을 증가하는 식으로 해결하였습니다!
[코드]
package org.example;
import java.util.*;
public class 롤케이크_자르기 {
public int solution(int[] topping) {
int answer = 0;
Map<Integer, Integer> dict1 = new HashMap<>();
Map<Integer, Integer> dict2 = new HashMap<>();
for (int idx : topping) {
dict2.put(idx, dict2.getOrDefault(idx, 0) + 1);
}
for (int idx : topping) {
System.out.println(dict1);
dict1.put(idx, dict1.getOrDefault(idx, 0) + 1);
if (dict2.get(idx) - 1 == 0) {
dict2.remove(idx);
} else {
dict2.put(idx, dict2.get(idx) - 1);
}
if (dict1.size() == dict2.size()) {
answer++;
}
}
return answer;
}
}
반응형
'문제풀이' 카테고리의 다른 글
1107 리모컨 - JAVA (0) | 2023.05.02 |
---|---|
문자열 폭발 - 문자열 (2) | 2023.04.18 |
위장-해쉬 (0) | 2023.04.05 |
부대복귀-BFS (0) | 2023.03.28 |
2589-보물섬 (0) | 2023.03.21 |
댓글