-문제 내용
두개의 Array 문자열을 제공하고 상호 연관 관계를 갖는다.
- 접근 방법
'aba' 와 'dog cat dog'가 주어 진다면 a는 dog를 cat은 b를 뜻하게 된다. 두개의 array가 상호 관계를 갖음으로 2개의 Map을 만들고 하나는 'aba'를 키로 하는 map 또하나는 'dog cat dog'를 키로하는 map을 만든 후 양쪽 관계가 성립 되는지를 확인 하는 코드를 만들면 된다.
var wordPattern = function(pattern, str) {
let map = new Map();
let rMap = new Map();
let pArr = pattern.split('');
let sArr = str.split(' ');
if(pArr.length != sArr.length) return false;
for(let i = 0; i < pArr.length; i++){
if(map.has(pArr[i])){
if(map.get(pArr[i]) != sArr[i]) return false;
} else {
map.set(pArr[i], sArr[i]);
}
if(rMap.has(sArr[i])){
if(rMap.get(sArr[i]) != pArr[i]) return false;
} else {
rMap.set(sArr[i], pArr[i]);
}
}
return true;
};
- 복잡도
Time Complexity O(N) : length of pattern or str
Space Complexity O(N) : 비록 2개를 만들긴 하지만 선형적으로 증가하진 않음으로 N
728x90
반응형
'Problem Solving' 카테고리의 다른 글
157. Read N Characters Given Read4 (0) | 2020.09.08 |
---|---|
Shortest path in a Binary Maze (0) | 2020.09.08 |
835. Image Overlap (0) | 2020.09.07 |
1579. Remove Max Number of Edges to Keep Graph Fully Traversable (0) | 2020.09.06 |
5509. Minimum Deletion Cost to Avoid Repeating Letters (0) | 2020.09.06 |