Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
Tags
- 개발자 취업
- 코테 파이썬
- 뷰
- 오블완
- 개발자취업
- 코테
- 파이썬 코테
- 라라벨
- react
- 알고리즘
- Flutter
- flutter getx
- c++ 코테
- vue
- 파이썬
- 플러터
- 코딩테스트준비
- 99클럽
- 코딩테스트
- til
- 안드로이드
- ML
- 코딩테스트 준비
- Laravel
- 항해99
- C++
- Python
- 백준
- DP
- 티스토리챌린지
Archives
- Today
- Total
잡다로그
[99클럽 코테 스터디] 17일차 TIL - 배열, Group the People Given the Group Size They Belong To 본문
Algorithm
[99클럽 코테 스터디] 17일차 TIL - 배열, Group the People Given the Group Size They Belong To
날으는다람쥐 2024. 6. 17. 00:36[17일차 미들러] 배열
문제: https://leetcode.com/problems/group-the-people-given-the-group-size-they-belong-to/description/

* 대충 번역: n명의 사람이 몇 개의 그룹으로 나뉘어져있다. 각 사람은 0부터 n-1까지의 고유한 ID를 가지고 있다. 정수 배열 groupSizes가 주어지고, groupSizes[i] 는 사람 i가 있는 그룹의 크기를 나타낸다. 예를 들어, groupSizes[1] = 3 이면, 사람1은 크기가 3인 그룹에 있다.
모든 사람이 그룹에 속하게끔 그룹들을 반환하. 각 사람 i는 groupSizes[i] 크기의 그룹에 있어야 한다.
각 사람은 정확히 하나의 그룹에만 있고, 모든 사람은 반드시 그룹에 속해있다. 만약 여러 답이 있다면, 아무 것이나 반환하라. 주어진 입력값에 대해 적어도 하나의 유효한 정답이 주어진다.
Solution
문제에서 주어진 배열을, 정답 배열과 비슷한 형태로 모은 뒤 슬라이싱 해주었다.
from collections import defaultdict
class Solution(object):
def groupThePeople(self, groupSizes):
"""
:type groupSizes: List[int]
:rtype: List[List[int]]
"""
group = defaultdict(list)
answer = []
# group = {2: [2, 4, 5, 6], 4: [1, 3, 7, 8]}일 때,
# answer = [[2, 4], [5, 6], [1, 3, 7, 8]]
# group[i] = 크기가 i인 배열에 속하는 사람 번호
for i in range(len(groupSizes)):
size = groupSizes[i]
group[size].append(i)
# group 값들 슬라이싱
for size, ppl in group.items():
if len(ppl) > size:
k = 0
while k < len(ppl):
answer.append(ppl[k:k+size])
k += size
else:
answer.append(group[size])
return answer
group 사전형 변수는 결국 key가 사이즈, value가 속하는 사람들의 번호 배열을 나타내게 된다.
group의 key값이 그룹의 크기가 되므로, 0부터 size까지, size+1부터 size+size 까지 .... 배열(그룹)을 만들게 된다.
나다어
- 사전형 변수를 순회할 때는 for key, value in dict.items(): 로 해주어야 한다.
'Algorithm' 카테고리의 다른 글
| [Python/코테] 프로그래머스 입국심사 (0) | 2024.06.18 |
|---|---|
| [99클럽 코테 스터디] 18일차 TIL - 문자, Iterator for Combination (0) | 2024.06.18 |
| [Python/코테] LeetCode 2433. Find The Original Array of Prefix Xor (0) | 2024.06.15 |
| [99클럽 코테 스터디] 16일차 TIL - 배열, Number of Good Pairs (0) | 2024.06.15 |
| [99클럽 코테 스터디] 15일차 TIL - 배열, Shuffle the Array (0) | 2024.06.15 |
Comments