leetcode

290. Word Pattern 자바스크립트

냠냠맨 2023. 1. 7. 18:20

⚡문제정보

패턴을 체크해보고 맞으면 true 틀리면 false를 반환해야하는 문제입니다.

다만 교차검증이 필요하겠네요

예를 들어서 예제 3번을 기준으로 word : pattern 키밸류쌍만 만들게되면

dog는 a패턴 cat도 a패턴이 되버리니까요

 


 

🔍접근방법

 

map을 두개 만들어서 매번 패턴과 단어의 일치여부를 교차검증해준다. 

 


 

🔍나의 풀이

 

var wordPattern = function(pattern, s) {
    s = s.split(' ')
    let map = new Map()
    let pamap = new Map()

    if(pattern.length != s.length) return false

    for(i=0 ; i<s.length; i++) {
        if(!map.has(s[i])) {
            map.set(s[i], pattern[i] )
        }
        if(!pamap.has(pattern[i])) {
            pamap.set(pattern[i], s[i] )
        }
        
        if(pattern[i] != map.get(s[i])) return false
        if(s[i] != pamap.get(pattern[i])) return false
    }


    return true 
};

 

map은 word : pattern 형태로 값을 담아줄 변수이고

pampa은 pattern : word 형태로 값을 담아줄 변수입니다.

최초로 만나게되는 값에 pattern들을 담아주고

 

if문으로 비교하면서 for문에서 false 케이스에 걸리지않으면 true를 내뱉는 코드에요

 

반응형