반응형
1. 문제 정의
2. 문제 접근
배열을 이용하라고 했지만 나는 map을 이용하여 풀었다.
3. 문제 풀이
- Map을 정의한다.
- groupSize의 값을 키로 하여, map에 index값을 추가한다.
- map의 크기가 groupSize가 되면 ans list 에 추가하고, map을 clear한다.
4. 코드
class Solution {
public List<List<Integer>> groupThePeople(int[] groupSizes) {
List<List<Integer>> ans = new ArrayList<>();
Map<Integer, List<Integer>> map = new HashMap<>();
int l = groupSizes.length;
for(int i = 0; i < groupSizes.length; i++) {
int size = groupSizes[i];
map.putIfAbsent(size, new ArrayList<>());
map.get(size).add(i);
if(map.get(size).size() == size){
ans.add(new ArrayList<>(map.get(size)));
map.get(size).clear();
}
}
return ans;
}
}
5. 회고
처음에 문제를 잘 이해하지 못해서 이해하는데 시간이 좀 걸렸다. 문제를 이해하고 나서 든 생각이 Queue아니면 Map을 활용해야겠다라고 생각이 들었다. 사실 Queue를 활용하든 , Map을 활용하든 정해진 크기만큼 가지고 있다가 비우는것은 같지만 groupSize정보를 같이 들고 있어야 하기 때문에 Map이 더 적합하다고 생각이 들었다. 배열로도 풀 수 있을 것 같은데 잘 생각이 나지 않는다....
반응형
'코딩테스트 > leetcode' 카테고리의 다른 글
99클럽 코테 스터디 29일차 TIL, 정렬(Top K Frequent Elements) (1) | 2024.06.20 |
---|---|
99클럽 코테 스터디 27일차 TIL, 문자열(Iterator for Combination) (1) | 2024.06.17 |
99클럽 코테 스터디 25일차 TIL, 배열(Find The Original Array of Prefix Xor) (0) | 2024.06.15 |
99클럽 코테 스터디 24일차 TIL, 배열(Subrectangle Queries) (1) | 2024.06.14 |
99클럽 코테 스터디 21일차 TIL, 이분법(Capacity To Ship Packages Within D Days) (1) | 2024.06.11 |