The Grid Search

sun202x·2022년 8월 5일
0

알고리즘

목록 보기
3/49

사이트: HackerRank
난이도: 미디움

문제

string array가 주어지면 같이 주어진 패턴이 존재하는지 확인하는 문제이다.

1. 나의 풀이

오늘은 무난하게 잘 풀리는 것 같다 ㅎㅎ
그리드 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';
}

2. 다른사람의 풀이

바로 풀 수 있었던 문제들은 지금은 생략하고 추후 더 효율적인 문제 풀이법을 찾아보도록 하겠다.

profile
긍정적으로 살고 싶은 개발자

0개의 댓글