개발조각

[리트코드] 49. Group Anagrams 본문

알고리즘🅰/리트코드

[리트코드] 49. Group Anagrams

개발조각 2022. 10. 26. 15:59
728x90
반응형

문제

https://leetcode.com/problems/group-anagrams/

 

Group Anagrams - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

 

문제 설명

Example 1:

Input: strs = ["eat","tea","tan","ate","nat","bat"]
Output: [["bat"],["nat","tan"],["ate","eat","tea"]]

이 예제의 Output을 보시면 각 배열마다 공통점이 있습니다.
(여기에서 ['bat']를 제외하시고 보시면 편할 것 같습니다.)

[ 'nat', 'tan' ], [ 'ate', 'eat', 'tea' ] 이 배열의 각 원소를 보시면 같은 알파벳으로 이루어진 문자열인 것을 알 수 있습니다.

[ 'nat', 'tan' ]

  • nat → a, n, t 사용
  • tan → a, n, t 사용

[ 'ate', 'eat', 'tea' ]

  • ate → a, e, t 사용
  • eat → a, e, t 사용
  • tea → a, e, t 사용

결론은 같은 알파벳으로 이루어져 있는 문자끼리 배열에 담아주고 각 배열을 한 배열에 담아주면 됩니다.


소스코드

var groupAnagrams = function(strs) {
    let data = {}
    for(let str of strs){
        let division = str.split('').sort().join('');
        data[division] ? data[division].push(str) : data[division]=[str];
    }    
    return Object.values(data);
};

 

 

728x90
반응형

'알고리즘🅰 > 리트코드' 카테고리의 다른 글

[리트코드] 56. Merge Intervals  (0) 2022.11.02
[리트코드] 54. Spiral Matrix  (0) 2022.10.29
[리트코드] 50. Pow(x, n)  (0) 2022.10.25
[리트코드] 48. Rotate Image  (0) 2022.10.24
[리트코드] 46. Permutations  (0) 2022.10.09
Comments