본문 바로가기
반응형

알고리즘21

알고리즘 18 : gossipProtocol 문제 세로와 가로의 길이가 각각 M, N인 마을지도가 배열로 주어졌을 때, '1'은 주민이 있는 집을 의미하고 '0'은 주민이 없는 땅을 의미합니다. 이 마을은 소문이 시작되면 하루에 상하좌우 한 칸 바로 옆에 있는 집으로 퍼집니다. 특정 주민의 집 (R, C)으로부터 어떤 소문이 시작될 경우, 마을 전체로 소문이 퍼지는데 걸리는 시간(일)을 리턴해야 합니다. 입력 인자 1 : village string 타입을 요소로 갖는 배열 village.length는 M village[i]는 string 타입 village[i].length는 N village[i][j]는 세로로 i, 가로로 j인 지점의 정보를 의미 village[i][j]는 '0' 또는 '1' 인자 2: row number 타입의 0 이상의 정수.. 2021. 10. 13.
알고리즘 17 : rotatedArraySearch rotatedArraySearch 문제 부분적으로 오름차순 정렬*된 정수의 배열(rotated)과 정수(target)를 입력받아 target의 인덱스를 리턴해야 합니다. 부분적으로 정렬된 배열: 배열을 왼쪽 혹은 오른쪽으로 0칸 이상 순환 이동할 경우 완전히 정렬되는 배열 예시: [4, 5, 6, 0, 1, 2, 3]은 왼쪽으로 3칸 또는 오른쪽으로 4칸 순환 이동할 경우 완전히 정렬됩니다. 입력 인자 1 : rotated number 타입을 요소로 갖는 배열 rotated[i]는 정수 인자 2 : target number 타입의 정수 출력 number 타입을 리턴해야 합니다. 주의사항 rotated에 중복된 요소는 없습니다. target이 없는 경우, -1을 리턴해야 합니다. 입출력 예시 let out.. 2021. 10. 9.
내가 보려고 만든 순열 조합 중복순열 순열 //순열 const getPermutations = function (arr, selectNumber) { // - 순열을 담을 배열 설정 const results = []; // - base case: 숫자가 한개라면 숫자 그대로 배열로 반환 if (selectNumber === 1) return arr.map((value) => [value]); // - recursive case: arr을 순회하면서 각 숫자들을 fixed하여 첫번째 수로 만든다. arr.forEach((fixed, index, origin) => { // - fixed를 제외한 나머지 배열을 만든다. const rest = [...origin.slice(0, index), ...origin.slice(index + 1)]; .. 2021. 10. 7.
알고리즘 16 [구현] 보드 게임 보드 게임 문제 N * N의 크기를 가진 보드판 위에서 게임을 하려고 합니다. 게임의 룰은 다음과 같습니다. 좌표 왼쪽 상단(0, 0)에 말을 놓는다. 말은 상, 하, 좌, 우로 이동할 수 있고, 플레이어가 조작할 수 있다. 조작의 기회는 딱 한 번 주어진다. 조작할 때 U, D, L, R은 각각 상, 하, 좌, 우를 의미하며 한 줄에 띄어쓰기 없이 써야 한다. 예시: UDDLLRRDRR, RRRRR 한 번 움직일 때마다 한 칸씩 움직이게 되며, 그 칸 안의 요소인 숫자를 획득할 수 있다. 방문한 곳을 또 방문해도 숫자를 획득할 수 있다. 보드 밖을 나간 말은 OUT 처리가 된다. 칸 안의 숫자는 0 또는 1이다. 단, 좌표 왼쪽 상단(0, 0)은 항상 0이다. 획득한 숫자를 합산하여 숫자가 제일 큰 사.. 2021. 10. 6.
반응형