문자 배열을 첫 번째 인수로, 문자열을 두 번째 인수로 취하는 JavaScript 함수를 작성해야 합니다.
함수는 행렬에 문자가 있는지 확인해야 합니다. 반복되지 않는 조합은 두 번째 인수로 함수에 제공된 문자열을 생성합니다.
이러한 조합이 있으면 함수는 true를 반환하고 그렇지 않으면 false를 반환해야 합니다.
예를 들어 -
입력 배열과 문자열이 -
인 경우const arr = [ ['s', 'd', 'k', 'e'], ['j', 'm', 'o', 'w'], ['y', 'n', 'l'] ]; const str = 'don';
그러면 출력은 다음과 같아야 합니다. -
const output = false;
예시
다음은 코드입니다 -
const arr = [ ['s', 'd', 'k', 'e'], ['j', 'm', 'o', 'width'], ['y', 'n', 'l'] ]; const str = 'don'; const containsWord = (arr = [], str = '') => { if (arr.length === 0){ return false; }; const height = arr.length; const width = arr[0].length; const dirs = [[-1, 0], [0, 1], [1, 0], [0, -1]]; const tryWord = (x, y, k) => { if (arr[x][y] !== str[k]) return false; if (k === str.length - 1) return true; arr[x][y] = '*'; for (const [dx, dy] of dirs) { const i = x + dx; const j = y + dy; if (i >= 0 && i < height && j >= 0 && j < width) { if (tryWord(i, j, k + 1)) return true; } } arr[x][y] = str[k]; // reset return false; }; for (let i = 0; i < height; i++) { for (let j = 0; j < width; j++) { if (tryWord(i, j, 0)) return true; } } return false; }; console.log(containsWord(arr, str));
출력
다음은 콘솔 출력입니다 -
false