https://school.programmers.co.kr/learn/courses/30/lessons/181920
문제 설명
정수 start와 end가 주어질 때, start부터 end까지의 숫자를 차례로 담은 리스트를 return하도록 solution 함수를 완성해주세요.
제한사항
0 ≤ start ≤ end ≤ 50
나의 풀이
class Solution {
public int[] solution(int start, int end) {
int[] answer = new int[end-start+1];
for(int i=0;i<answer.length;i++){
answer[i]=start;
start=start+1;
}
return answer;
}
}
새롭게 알게된 풀이
import java.util.stream.IntStream;
class Solution{
public int[] solution(int start, int end){
return IntStream.rangeClosed(start,end).toArray();
}
}
*기본형 특화 스트림
스트림 API는 박싱 비용을 피할 수 있도록 IntStream, DoubleStream, LongStream을 제공한다.
IntStream사용법
import java.util.stream.IntStream;
public class IntStreamRange{
public static void main(String[]args){
System.out.println("range:");
Intstream.range(0,10).forEach(System.out::println);
System.out.println("rangeClosed:");
IntStream.rangeClosed(0,10).forEach(System.out::println);
System.out.println("sum:");
System.out.println(IntStream.range(0,10).sum());
System.out.println("max:");
System.out.println(IntStream.range(0,10).max());
System.out.println("min:);
System.out.println(IntStream.range(0,10).average());
System.out.println("average:");
System.out.println(IntStream.range(0,10).average());
}
}
range()는 종료 값을 포함하지 않으며, rangeClose()는 종료값을 포함한다.
출처
https://www.devkuma.com/docs/java/stream-api/int-stream/
https://cornswrold.tistory.com/545