๋ฌธ์
ํ์ด ๊ณผ์
์ฃผ์ด์ง ์
๋ ฅ์์ Anagram์ ์ฐพ๋ ๋ฌธ์ ์
๋๋ค.
Anagram์ ์์์ ์๊ด์์ด ๋ ๋จ์ด๋ฅผ ๊ตฌ์ฑํ๋ ๋ฌธ์์ ์ข
๋ฅ์ ๊ฐ์๊ฐ ๋์ผํ ๊ด๊ณ๋ฅผ ๋งํฉ๋๋ค.
Anagram์ ํ๋จํ๋ ์ง๊ด์ ์ธ ๋ฐฉ๋ฒ์ ๋ ๋จ์ด๋ฅผ ์ ๋ ฌํ ๋ค ๊ฐ์ ์ง ๋น๊ตํ๋ ๊ฒ์
๋๋ค.
Javascript ์์ String ์ ์ ๋ ฌํ๊ธฐ ์ํด์๋ spread ์ฐ์ฐ์ ํตํด Array๋ก ๋ฐ๊ฟ์ค ์ดํ sort
ํจ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ฝ๋
/**
* @param {string[]} strs
* @return {string[][]}
*/
var groupAnagrams = function (strs) {
const anagram = new Map();
for (let word of strs) {
let sorted = [...word].sort().join("");
// ํ์ฌ ์กด์ฌํ๋ anagram ์ธ์ง ์กฐ์ฌ
if (anagram.has(sorted)) {
anagram.get(sorted).push(word);
} else {
anagram.set(sorted, [word]);
}
}
const answer = Array.from(anagram.values());
return answer;
};
const input = ["eat", "tea", "tan", "ate", "nat", "bat"];
console.log(groupAnagrams(input));
๋ฐ์ํ
'๐ algorithm > leetcode' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
LeetCode 678 - Valid Parenthesis String (Medium) (0) | 2021.03.02 |
---|---|
LeetCode 1094 - Car Pooling (Medium) (0) | 2021.03.02 |
LeetCode 200 - Number of Islands (Medium) (0) | 2021.03.02 |
LeetCode 64 - Minimum Path Sum (Medium) (0) | 2021.03.02 |
LeetCode 55 - Jump Game (Medium) (0) | 2021.03.02 |
๐ฌ ๋๊ธ