[JavaScript] Lv0 - 가까운 1 찾기

Moon·2025년 1월 16일
0
post-thumbnail

가까운 1 찾기

문제 설명

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

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


제한사항

  • 3 ≤ arr의 길이 ≤ 100'000
    • arr의 원소는 전부 1 또는 0입니다.

입출력 예

arridxresult
[0, 0, 0, 1]13
[1, 0, 0, 1, 0, 0]4-1
[1, 1, 1, 1, 0]33

입출력 예 설명

입출력 예 #1

  • 1보다 크면서 원소가 1인 가장 작은 인덱스는 3입니다. 따라서 3을 return 합니다.

입출력 예 #2

  • 4번 인덱스 이후에 1은 등장하지 않습니다. 따라서 -1을 return 합니다.

입출력 예 #3

  • 3번 인덱스의 값이 1입니다. 따라서 3을 return 합니다.

function solution(arr, idx) {
    return arr.indexOf(1, idx);
}

// 입출력 예 테스트
console.log(solution([0, 0, 0, 1], 1)); // 3
console.log(solution([1, 0, 0, 1, 0, 0], 4)); // -1
console.log(solution([1, 1, 1, 1, 0], 3)); // 3
  1. indexOf 메서드:
    • arr.indexOf(1, idx)는 배열 arr에서 값 1을 찾습니다.
    • idx를 두 번째 인자로 전달하여 idx부터 배열을 탐색합니다.
  2. 작동 원리:
    • indexOf는 첫 번째 인자로 전달된 값(1)을 배열에서 검색하고, 찾으면 해당 값의 인덱스를 반환합니다.
    • 만약 값이 없다면 1을 반환합니다.
  3. 예제 동작:
    • 입력: [0, 0, 0, 1], idx = 1
      • indexOf(1, 1)idx = 1부터 배열을 검색.
      • 1은 인덱스 3에서 발견 → 반환 값: 3.
    • 입력: [1, 0, 0, 1, 0, 0], idx = 4
      • indexOf(1, 4)idx = 4부터 배열을 검색.
      • 1이 이후에 없음 → 반환 값: 1.
    • 입력: [1, 1, 1, 1, 0], idx = 3
      • indexOf(1, 3)idx = 3부터 배열을 검색.
      • 1은 인덱스 3에서 발견 → 반환 값: 3.
  4. 결과 반환:
    • indexOf의 결과를 그대로 반환합니다.
profile
MOON.DEVLOG

0개의 댓글