우리는 arr이라고 하는 별개의 정수 배열과 sourceArr이라고 하는 정수 배열의 또 다른 배열이 제공됩니다.
sourceArr 배열에서 정수는 고유합니다. sourceArr의 배열을 임의의 순서로 연결하여 arr을 형성하는 함수를 작성해야 합니다.
그러나 soureArr의 하위 배열 내부에 있는 정수를 재정렬할 수 없습니다. sourceArr에서 배열 arr을 구성할 수 있으면 true를 반환해야 하고 그렇지 않으면 false를 반환해야 합니다.
예를 들어 -
const arr = [23, 67, 789]; const sourceArr = [[23], [789, 67]];
하위 배열 내부의 요소를 재정렬할 수 없고 목표 배열을 달성할 수 없기 때문에 함수는 false를 반환해야 합니다.
예시
const arr1 = [23, 67, 789]; const arr2 = [23, 789, 67]; const sourceArr = [[23], [789, 67]]; const validFormation = (arr, sourceArr) => { const indexes = new Array(100); let arrIndex = 0; let index; for (let i = 0; i < sourceArr.length; ++i) { indexes[sourceArr[i][0]] = i; } while (arrIndex < arr.length) { index = indexes[arr[arrIndex]]; if (index === undefined) return false; for (let j = 0; j < sourceArr[index].length; ++j) { if (arr[arrIndex] !== sourceArr[index][j]) return false; ++arrIndex; } } return true; }; console.log(validFormation(arr1, sourceArr)); console.log(validFormation(arr2, sourceArr));
출력
이것은 다음과 같은 출력을 생성합니다 -
false true