Group By
Group By - Explanation
Problem Summary
Write a function that groups array elements by a given key.
Go to Problem →Detailed Explanation
이 문제는 **데이터 그룹화** 패턴을 학습합니다. SQL의 GROUP BY와 유사한 기능으로 데이터 분석에 필수적입니다. **그룹화란?** 특정 속성 값에 따라 요소들을 분류하는 것입니다. **알고리즘 동작** 1. 각 요소의 키 값을 추출 2. 해당 값을 가진 그룹이 없으면 생성 3. 요소를 해당 그룹에 추가 **groups[value] = groups[value] || []** - 그룹이 없으면 빈 배열 생성 - 이미 있으면 기존 배열 유지 **[{age:20}, {age:20}, {age:30}] 처리** 1. {age:20}: groups={20: [{age:20}]} 2. {age:20}: groups={20: [{age:20}, {age:20}]} 3. {age:30}: groups={20: [...], 30: [{age:30}]} **Object.groupBy (최신 API)** 최신 JavaScript에는 내장 groupBy가 있습니다: `Object.groupBy(arr, item => item[key])` 하지만 아직 모든 환경에서 지원되지 않습니다. **실용적 활용** ```javascript const usersByCountry = groupBy(users, 'country'); const ordersByStatus = groupBy(orders, 'status'); ```
Solution Code
function groupBy(arr, key) {
return arr.reduce((groups, item) => {
const value = item[key];
groups[value] = groups[value] || [];
groups[value].push(item);
return groups;
}, {});
}Key Concepts from This Problem
Common Mistakes
Hints
Complexity Analysis
Time Complexity
O(n)
Grows linearly with input size
Space Complexity
O(n)
Uses memory proportional to input size