본문 바로가기
코딩테스트 연습

가까운 1 찾기

by 신재은👩🏼‍💻 2024. 4. 12.

문제 설명

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

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

 

제한사항

  • 3 ≤ arr의 길이 ≤ 100'000

 

입출력 예

arr idx result
[0, 0, 0, 1] 1 3
[1, 0, 0, 1, 0, 0] 4 -1
[1, 1, 1, 1, 0] 3 3

import java.util.stream.IntStream;

class Solution {
    public int solution(int[] arr, int idx) {
        int answer = 0;
        answer = IntStream.range(idx, arr.length)
            .filter(i -> arr[i] == 1)
            .findFirst()
            .orElse(-1);
            
            
        return answer;
    }
}


stream 사용에 슬슬 익숙해져 가고 있다.

findfirst나 orelse도 알았다.

'코딩테스트 연습' 카테고리의 다른 글

9로 나눈 나머지  (0) 2024.04.13
접미사 배열  (0) 2024.04.12
문자열 잘라서 정렬하기  (0) 2024.04.12
간단한 식 계산하기  (0) 2024.04.12
l로 만들기  (0) 2024.04.12