문제 설명
Medium
- 문자열 strs의 배열이 주어지면 애너그램을 함께 그룹화합니다. 어떤 순서로든 답변을 반환할 수 있습니다.
- 애너그램은 일반적으로 모든 원래 문자를 정확히 한 번만 사용하여 다른 단어나 구의 문자를 재배열하여 형성된 단어 또는 구입니다.
**문제에서 요구하는 풀이는 제시된 strs 배열의 요소들이 애너그램(문자 재배열)을 하여도 같은 종류들을 분류하여 배열화한다. 그리고 분류된 배열 내에서 문자열 오름차순으로 정렬하여 반환한다.
접근
var groupAnagrams = function(strs) {
let map = {}
let result = [];
for (let word of strs) {
//배열에 내 각 요소에 접근하여 모든 문자열들을 오름차순하여 anagram 변수에 넣는다.
//ex) ['aet', 'aet', 'ant', 'aet', 'ant', 'abt']
const anagram = word.split("").sort().join("");
//조건식을 통해 종류별로 구분하여, true 시 anagram 변화 전 word를 push 한다.
//ex) {aet: ['eat', 'tea', 'ate'], ant: ['tan', 'nat'], abt: ['bat']}
map[anagram] ? map[anagram].push(word) : map[anagram] = [word];
}
//result 배열에 객체 키 내 값인 배열을 문자열 오름차순 정렬, unshift하여 반환한다.
//ex) [['bat'], ['nat', 'tan'], ['ate', 'eat', 'tea']]
for (let val in map) {
result.unshift(map[val].sort());
}
return result;
};
'프론트엔드 개발[Front-End Development] > Coding Test' 카테고리의 다른 글
[CT-L] 75. Sort Colors (0) | 2022.11.22 |
---|---|
[CT-L] 347. Top K Frequent Elements (0) | 2022.11.21 |
[CT-L] 88. Merge Sorted Array (0) | 2022.11.21 |
[CT-L] 215. Kth Largest Element in an Array (0) | 2022.11.21 |
[CT-L] 122. Best Time to Buy and Sell Stock II (0) | 2022.11.21 |