첫 번째로 나오는 음수 [stream을 통한 map,filter,reduce 메서드 활용해보기]

하얀성·2023년 7월 13일
0

정수 리스트 num_list가 주어질 때, 첫 번째로 나오는 음수의 인덱스를 return하도록 solution 함수를 완성해주세요. 음수가 없다면 -1을 return합니다.

제한사항
5 ≤ num_list의 길이 ≤ 100
-10 ≤ num_list의 원소 ≤ 100
입출력 예
num_list result
[12, 4, 15, 46, 38, -2, 15] 5
[13, 22, 53, 24, 15, 6] -1
입출력 예 설명
입출력 예 #1

5번 인덱스에서 음수가 처음 등장하므로 5를 return합니다.
입출력 예 #2

음수가 없으므로 -1을 return합니다.


<제출 정답>

class Solution {
    public int solution(int[] num_list) {
        for(int i=0; i<num_list.length; i++){
            if(num_list[i] < 0){
                return i;
            }
        }
        return -1;
    }
}

<Stream을 통한 filter 메소드 활용>

import java.util.stream.IntStream;

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

이 경우에는 filter 메소드에서 플레이스홀더 i가 인덱스 값을 가리킵니다. 이 인덱스를 사용하여 배열 num_list에서 원하는 값을 필터링하고 있습니다.

다만, 이는 IntStream.range를 사용했기 때문에 가능한 것이며, 일반적인 스트림에서 map, filter 등의 메소드를 사용할 때는 스트림의 각 요소가 플레이스홀더가 됩니다.

profile
기적을 한웅큼 품은 js러버

0개의 댓글