2022년 10월 28일 금요일 - 오랜만이구만


오늘 올려볼 문제는 49번 Group Anagrams 이라는 문제이다.


사진을 클릭하면 해당 문제로 이동합니다.

leetcode 문제 사진

오늘도 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 문제 맞았습니다


이제 꽤나 중요한 시기는 지나있는 상황이 됐다.

인생에서 한 번의 전환점이라 생각하고 열심히 살아야겠다!


내일도 문제를 풀어서 블로그에 글을 쓸 수 있으면 좋겠다.

+ Recent posts