가까운 1 찾기

정수 배열 arr가 주어집니다. 이때 arr의 원소는 1 또는 0입니다. 정수 idx가 주어졌을 때, idx보다 크면서 배열의 값이 1인 가장 작은 인덱스를 찾아서 반환하는 solution 함수를 완성해 주세요.

단, 만약 그러한 인덱스가 없다면 -1을 반환합니다.

가까운 1 찾기Lv.0

181898

https://school.programmers.co.kr/learn/courses/30/lessons/181898?language=javascript

해설

idx 이후에 나타나는 값이 1인 가장 작은 인덱스를 찾는 간단한 방식으로 동작합니다.

  • Name
    for 루프
    Type
    Description

    배열 arr을 순회합니다. 루프 변수 i는 idx에서 시작하여 배열의 끝까지 증가합니다.

    • 배열의 각 원소에 접근하여 해당 원소가 1인지 확인합니다.

    • 만약 arr[i]가 1이라면, 이는 idx 이후에 나타나는 값이 1인 가장 작은 인덱스를 찾은 것입니다. 따라서 현재의 i 값을 반환하고 함수를 종료합니다.

    • 만약 루프를 모두 순회해도 1을 찾지 못했다면, return -1; 문을 통해 -1을 반환합니다.

가까운 1 찾기 slice

function solution(arr, idx) {
    for (let i = idx; i < arr.length; i++) {
        if (arr[i] === 1) {
            return i;
        }
    }
    return -1;
}