728x90
🔗 1282. Group the People Given the Group Size They Belong To
조건을 처음에 잘못 파악해서 문제였다.
- groupSizes.length == n : 즉 groupSize의 길이 만큼의 사람이 0 ~ n-1 의 번호를 받아서 대기중!
- groupSize = [3, 3, 3, 3, 3, 1, 3] 이라고 했을 때 5번째 index 값이 1 이다. 5는 1명만 있는 그룹으로 가야한다는 뜻! 0번째 는 3이므로 0번 사람은 3명이 있는 그룹에 배정되어야 한다.
- 이 조건을 만족하는 한가지 경우만 출력한다.
이 문제를 해결하기 위해 array 와 dictionary를 썼다.
우선 groupSize를 순환하며 그룹 배정을 해주는 데 dictionary에 key 값은 인원수, value는 현재 배정된 사람들로 하여
다 채워지면 삭제되도록 했다.
class Solution:
def groupThePeople(self, groupSizes):
answer = []
dictionary = {}
for idx, element in enumerate(groupSizes):
try:
dictionary[element].append(idx)
except KeyError:
dictionary[element] = [idx]
if len(dictionary[element]) == element:
answer.append(dictionary[element])
dictionary.pop(element)
return answer
groupSize = [3,3,3,3,3,1,3]
print(Solution().groupThePeople(groupSize))
728x90
'TIL' 카테고리의 다른 글
99클럽 코테 스터디 27일차 TIL + 오늘의 학습 키워드 (0) | 2024.06.18 |
---|---|
99클럽 코테 스터디 26일차 TIL + 자료구조, 데이터 사이언스 (0) | 2024.06.18 |
99클럽 코테 스터디 24일차 TIL + XOR (0) | 2024.06.15 |
99클럽 코테 스터디 23일차 TIL + Array (2) | 2024.06.14 |
99클럽 코테 스터디 22일차 TIL + 딥러닝 시험공부 (0) | 2024.06.13 |