https://leetcode.com/problems/group-anagrams/description/
문제 정의
제약 사항
해결 아이디어
효율적인 데이터 구조: HashMap
map = 빈 HashMap (key: 정렬된 문자열, value: 문자열 리스트)
for str in strs:
charArray = str의 문자 배열
정렬(charArray)
sortedStr = charArray를 문자열로 변환
if sortedStr가 map에 없으면:
map[sortedStr] = 빈 리스트
map[sortedStr].add(str)
answer = 빈 리스트
for value in map의 모든 값:
answer.add(value)
return answer
import java.util.*;
class Solution {
public List<List<String>> groupAnagrams(String[] strs) {
Map<String, List<String>> map = new HashMap<>();
for (String str : strs) {
char[] charArray = str.toCharArray();
Arrays.sort(charArray);
String string = String.valueOf(charArray);
if (!map.containsKey(string)) {
map.put(string, new ArrayList<>());
}
List<String> list = map.get(string);
list.add(str);
map.put(string, list);
}
List<List<String>> answer = new ArrayList<>();
for (String key : map.keySet()) {
answer.add(map.get(key));
}
return answer;
}
}