loading
본문으로 바로가기

문제 설명

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;
};

 

 

 

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