-
시간복잡도: O(N)
-
알고리즘
구현, 자료구조
-
풀이설명
- hash table을 이용해
match
에 각 사람이 어떤 크기의 그룹에 속하고 싶은지 저장합니다. 이 때 key는groupSize
로, value는 사람 번호로 저장했습니다. match
가 완성되면 저장된 값들을 조회하며groupSize
만큼 묶어서ans
에 추가합니다.
- hash table을 이용해
-
소스코드
class Solution:
def groupThePeople(self, groupSizes):
match = {}
for idx, groupSize in enumerate(groupSizes):
if groupSize in match:
match[groupSize].append(idx)
else:
match[groupSize] = [idx]
ans = []
for groupSize, m in match.items():
while m:
ans.append(m[:groupSize])
m = m[groupSize:]
return ans