-
[자바(JAVA)] 홀짝에 따라 다른 값 반환하기 / IntStream.rangeClosed프로그래머스/자바(JAVA) 2023. 7. 2. 22:47728x90
✅ 내 답
import java.util.stream.IntStream; class Solution { public int solution(int n) { if (n % 2 == 1) { // n이 홀수인 경우 return IntStream.rangeClosed(1, n) .filter(i -> i % 2 == 1) .sum(); } else { // n이 짝수인 경우 return IntStream.rangeClosed(2, n) .filter(i -> i % 2 == 0) .map(i -> i * i) .sum(); } } }
IntStream.rangeClosed(start, end) 메서드는 start와 end 값을 포함하는 정수 범위의 스트림을 생성하는 역할을 합니다. 즉, start부터 end까지의 정수로 이루어진 스트림을 반환합니다.
예를 들어, IntStream.rangeClosed(1, 5)를 호출하면 1, 2, 3, 4, 5를 요소로 갖는 IntStream 스트림을 생성합니다. rangeClosed 메서드는 시작 값부터 끝 값까지의 범위를 포함하기 때문에, 끝 값인 5도 스트림에 포함됩니다.
map 메서드는 스트림의 각 요소에 대해 지정된 함수를 적용하여 새로운 값을 반환하는 역할을 합니다. map 메서드는 각 요소를 변환하여 새로운 스트림을 생성합니다.
위의 코드에서 IntStream.rangeClosed(2, n)는 2부터 n까지의 범위의 정수 스트림을 생성하는 역할을 합니다. map(i -> i * i)는 각 정수를 제곱하여 새로운 스트림을 생성합니다. 예를 들어, n이 6이라면 IntStream.rangeClosed(2, 6)은 2, 3, 4, 5, 6을 포함하는 스트림을 생성하고, map(i -> i * i)는 각 정수를 제곱하여 4, 9, 16, 25, 36으로 이루어진 새로운 스트림을 생성합니다.728x90'프로그래머스 > 자바(JAVA)' 카테고리의 다른 글