사이트: HackerRank
난이도: 미디움
string array가 주어지면 같이 주어진 패턴이 존재하는지 확인하는 문제이다.
오늘은 무난하게 잘 풀리는 것 같다 ㅎㅎ
그리드 P를 순회하는 재귀함수를 하나 정의해 놓고 패턴을 비교할 수 있을 만큼만 G를 순회하도록 작성했다.
function gridSearch(G, P) {
// Write your code here
function checkP(gRow, gCol, pRow) {
for (let i = 0; i < P[pRow].length; i++) {
if (G[gRow][gCol + i] !== P[pRow][i]) {
return false;
}
}
if (!P[pRow + 1]) {
return true;
}
return checkP(gRow + 1, gCol, pRow + 1);
}
for (let i = 0; i < (G.length - P.length + 1); i++) {
for (let j = 0; j < (G[0].length - P[0].length + 1); j++) {
if (checkP(i, j, 0)) {
return 'YES';
}
}
}
return 'NO';
}
바로 풀 수 있었던 문제들은 지금은 생략하고 추후 더 효율적인 문제 풀이법을 찾아보도록 하겠다.