Algorithm
LeetCode
Java
그룹 애너그램

문제 Link

https://leetcode.com/problems/group-anagrams/ (opens in a new tab)

해설

class Solution {
    public List<List<String>> groupAnagrams(String[] strs) {
        Map<String, List<String>> results = new HashMap<>();
 
        for (String s : strs) {
            // 문자열을 문자 배열로 변환
            char[] chars = s.toCharArray();
            // 문자 배열 정렬
            Arrays.sort(chars);
            // 문자 배열을 키로 하기 위해 다시 문자열로 변환
            String key = String.valueOf(chars);
 
            // 만약 기존에 없던 키라면 빈 리스트를 삽입
            if (!results.containsKey(key)) {
                results.put(key, new ArrayList<>());
            }
 
            results.get(key).add(s);
        }
 
        return new ArrayList<>(results.values());
    }
}