LeetCode 문제 풀이

[LeetCode] 290번 Word Pattern 문제를 풀어보았다. (ft. java)

pantrom 2023. 1. 1. 21:14

2023년 01월 01일 일요일 - Hello 2023!


오늘 올려볼 문제는 290번 Word Pattern 이라는 문제이다.


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

leetcode 문제 사진

오늘도 LeetCode 사이트 오늘의 문제를 가지고 왔다.

23년이 왔다니... 실감이 안나는구만


입력


사진에서도 볼 수 있듯이 string 2개가 입력으로 들어온다.



풀이 및 코드


pattern에 맞게끔 s가 구성되어있는지 판단하는 문제이다.


오늘은 처음부터 정답을 생각해냈다.

HashMap을 사용해서 key value 방식으로 저장하고 중복되는 키를 사용하는지 set을 사용하여 판단하는 방식으로 문제를 풀었다.


이제 코드를 봐보자!


풀이코드

class Solution {
    public boolean wordPattern(String pattern, String s) {
        var map = new HashMap<Character, String>();
        var set = new HashSet<String>();
        var patterns = pattern.toCharArray();
        var arr = s.split(" ");
        
        if(patterns.length != arr.length) return false;
        
        for(int i = 0; i < patterns.length; i++) {
            var c = patterns[i];
            if(map.containsKey(c)) {
                if(!map.get(c).equals(arr[i])) return false;
            } else {
                if(set.contains(arr[i])) return false;
                map.put(c, arr[i]);
                set.add(arr[i]);
            }
        }
        
        return true;
    }
}




제출 화면

leetcode 문제 맞았습니다


옛날에 풀었던 문제길래 submission을 봤는데 엄청나게 많이 틀렸었다..

대체 왜 이렇게 많이 틀렸는지 풀면서 확인했는데 이 문제가 leetcode치고 edge case가 좀 있는 문제라서 그랬다 ㅋㅋㅋ


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