🔎 문제

⭕ 풀이
start_num부터 end_num까지 반복하게 되면 배열의 위치를 따로 계산해주어야 하므로 배열의 크기를 end_num - start_num으로 계산해주고 해당 배열 크기만큼 반복을 해준다.
배열의 값은 start_num 기준으로 1씩 증가하므로 반복문 마지막에 +1을 해주었다.
class Solution {
public int[] solution(int start_num, int end_num) {
int diff = end_num - start_num;
int[] answer = new int[diff+1];
for(int i=0 ; i<=diff ; i++){
answer[i] = start_num;
start_num++;
}
return answer;
}
}
import java.util.stream.IntStream;
class Solution {
public int[] solution(int start, int end) {
return IntStream.rangeClosed(start, end).toArray();
}
}
📌 KEYPOINT
- 다른 풀이들을 살펴보다가 심플하게 적혀있는 풀이가 있어서 가져와 봤다.
IntStream.range(rangeClosed)
- 원리만 파악하면 간단하다.
IntStream.range(a, b)
IntStream.rangeClosed(a, b)
위 두 형태로 사용되며 데이터타입이 Integer인 것들을 a부터 b까지 순서대로 출력해주는 함수이다.
다만, range는 a부터 b-1까지만 출력을 하며 rangeClosed의 경우는 a부터 b까지 출력을 해준다.
toArray();
IntStream.rangeClosed()를 통해 출력한 값들을 배열로 변환해주는 함수이다.
💗 느낀점
- 다양한 함수들의 사용으로 소스의 길이를 줄이니까 보기 좋다...다양한 함수들을 활용해 봐야겠다