๐Ÿ“ฆ

Group By

Group By
๋ณดํ†ต ๊ฐ์ฒด +20pts

Problem

Write a function that groups array elements by a given key.

Examples

Input: groupBy([{age: 20}, {age: 20}, {age: 30}], "age")
Output: {20: [{age: 20}, {age: 20}], 30: [{age: 30}]}

Explanation

์ด ๋ฌธ์ œ๋Š” **๋ฐ์ดํ„ฐ ๊ทธ๋ฃนํ™”** ํŒจํ„ด์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค. SQL์˜ GROUP BY์™€ ์œ ์‚ฌํ•œ ๊ธฐ๋Šฅ์œผ๋กœ ๋ฐ์ดํ„ฐ ๋ถ„์„์— ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค. **๊ทธ๋ฃนํ™”๋ž€?** ํŠน์ • ์†์„ฑ ๊ฐ’์— ๋”ฐ๋ผ ์š”์†Œ๋“ค์„ ๋ถ„๋ฅ˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. **์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋™์ž‘** 1. ๊ฐ ์š”์†Œ์˜ ํ‚ค ๊ฐ’์„ ์ถ”์ถœ 2. ํ•ด๋‹น ๊ฐ’์„ ๊ฐ€์ง„ ๊ทธ๋ฃน์ด ์—†์œผ๋ฉด ์ƒ์„ฑ 3. ์š”์†Œ๋ฅผ ํ•ด๋‹น ๊ทธ๋ฃน์— ์ถ”๊ฐ€ **groups[value] = groups[value] || []** - ๊ทธ๋ฃน์ด ์—†์œผ๋ฉด ๋นˆ ๋ฐฐ์—ด ์ƒ์„ฑ - ์ด๋ฏธ ์žˆ์œผ๋ฉด ๊ธฐ์กด ๋ฐฐ์—ด ์œ ์ง€ **[{age:20}, {age:20}, {age:30}] ์ฒ˜๋ฆฌ** 1. {ag...

View detailed explanation โ†’

Key Concepts

๊ทธ๋ฃนํ™” ํŒจํ„ด reduce๋กœ ๊ฐ์ฒด ์ƒ์„ฑ ๋™์  ํ‚ค ์ ‘๊ทผ || ์—ฐ์‚ฐ์ž
Time: O(n) Space: O(n)
solution.js
Ctrl + Enter
Run tests to see results here.