문제 소개
숫자로 이루어진 배열을 입력받아 처리하는 JavaScript 함수를 작성해야 합니다. 이 함수의 목표는 배열에서 요소의 값과 해당 요소의 0 기반(0-based) 인덱스가 일치하는 첫 번째 숫자를 찾아 반환하는 것입니다. 단, 조건을 만족하는 숫자가 배열에 최소 하나 이상 존재한다고 가정합니다.
해결 접근 방법
가장 직관적인 해결 방법은 배열을 처음부터 끝까지 순차적으로 순회하면서, 각 위치에서 요소의 값이 현재 인덱스와 같은지 비교하는 것입니다. 조건을 만족하는 요소를 발견하는 즉시 해당 값을 반환하고 함수 실행을 종료하면 됩니다.
예시 코드
다음은 위 로직을 구현한 코드입니다.
const arr = [9, 2, 1, 3, 6, 5];
const findFirstSimilar = (arr = []) => {
for(let i = 0; i < arr.length; i++){
const el = arr[i];
if(el === i){
return i;
};
};
};
console.log(findFirstSimilar(arr));
동작 원리
예제 배열 [9, 2, 1, 3, 6, 5]를 순서대로 살펴보면 다음과 같습니다.
- 인덱스 0: 값 9 → 불일치
- 인덱스 1: 값 2 → 불일치
- 인덱스 2: 값 1 → 불일치
- 인덱스 3: 값 3 → 일치!
인덱스 3에서 요소의 값과 인덱스가 처음으로 일치하므로, 함수는 즉시 3을 반환합니다.
출력 결과
3