2022년 10월 28일 금요일 - 오랜만이구만
오늘 올려볼 문제는 49번 Group Anagrams 이라는 문제이다.
사진을 클릭하면 해당 문제로 이동합니다.
오늘도 LeetCode 사이트 오늘의 문제를 가지고 왔다.
생각을 더해서 어렵게 풀려고 했었다..
입력
사진에서도 볼 수 있듯이 String 배열 1개가 입력으로 들어온다.
풀이 및 코드
같은 anagram인 String들끼리 모아서 리스트로 리턴하는 문제다.
오늘은 처음부터 정답을 생각해냈다.
Char 배열을 기준으로 개수를 세주고 이를 HashMap의 키로 사용하는 방식으로 문제를 풀었다.
이제 코드를 봐보자!
풀이코드
class Solution {
public List<List<String>> groupAnagrams(String[] strs) {
var countSet = new HashMap<String, ArrayList<String>>();
for(var str: strs) {
var keyArr = new char[26];
for(var c : str.toCharArray()) keyArr[c - 'a']++;
String key = new String(keyArr);
if(!countSet.containsKey(key)) countSet.put(key, new ArrayList<>());
countSet.get(key).add(str);
}
List<List<String>> result = new ArrayList<>();
for(var keySet : countSet.entrySet()) result.add(keySet.getValue());
return result;
}
}
제출 화면
이제 꽤나 중요한 시기는 지나있는 상황이 됐다.
인생에서 한 번의 전환점이라 생각하고 열심히 살아야겠다!
내일도 문제를 풀어서 블로그에 글을 쓸 수 있으면 좋겠다.
'LeetCode 문제 풀이' 카테고리의 다른 글
[LeetCode] 70번 문제를 풀어보았다. (ft. java) (0) | 2022.12.12 |
---|---|
[LeetCode] 1339번 문제를 풀어보았다. (ft. java) (2) | 2022.12.10 |
[LeetCode] 2095번 문제를 풀어보았다. (ft. java) (0) | 2022.10.14 |
[LeetCode] 976번 문제를 풀어보았다. (ft. java) (0) | 2022.10.12 |
[LeetCode] 112번 문제를 풀어보았다. (ft. java) (0) | 2022.10.04 |