⚡문제정보
패턴을 체크해보고 맞으면 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를 내뱉는 코드에요
반응형
'leetcode' 카테고리의 다른 글
451. Sort Characters By Frequency 자바스크립트 (0) | 2023.01.07 |
---|---|
349. Intersection of Two Arrays 자바스크립트 (0) | 2023.01.07 |
229. Majority Element II 자바스크립트 (0) | 2023.01.07 |
169. Majority Element 자바스크립트 (0) | 2023.01.07 |
49. Group Anagrams 자바스크립트 (0) | 2023.01.07 |