💬 문제 설명
정수 배열 numbers가 매개변수로 주어집니다. numbers의 각 원소에 두배한 원소를 가진 배열을 return하도록 solution 함수를 완성해주세요.
🚫 제한 사항
- -10,000 ≤ numbers의 원소 ≤ 10,000
- 1 ≤ numbers의 길이 ≤ 1,000
📢 입출력 예
👨🏫 입출력 예 설명
📃 제출 코드
import java.util.Arrays;
class Solution {
public int[] solution(int[] numbers) {
int[] answer = Arrays.stream(numbers).map(i -> i * 2).toArray();
return answer;
}
}
✏ 해결방법 & 배운점
Arrays.stream
을 사용하여 스트림을 생성하고 map(i -> i * 2)
을 통해 각 원소를 두 배로 증가 시킨 뒤 배열로 변환하여 문제를 해결하였습니다.
배열을 스트림으로 변환하는 방법과 Map에 대해 알게되었습니다.
- 배열이 기본타입인 경우 IntStream 이나 , LongStream, DoubleStream 을 사용한다.
- 배열이 기본타입이 아닌 객체배열일 경우 Stream을 사용한다.
- 기본 타입 배열을 다룰 때 IntStream, LongStream, DoubleStream을 사용하는 이유는 박싱과 언박싱을 피하여 성능과 메모리 효율성을 높이기 위해서이다.
- map() 은 스트림의 각 요소를 다른 요소로 변환할 때 사용된다.
- map() 과 mapToInt의 차이 mapToInt는 map과 유사하지만 반환되는 스트림 타입이 IntStream으로 고정된다.
'PS > 프로그래머스 입문 100제' 카테고리의 다른 글
[프로그래머스] LV.0 - 자릿수 더하기 자바 [28/100] (0) | 2024.06.21 |
---|---|
[프로그래머스] LV.0 피자 나눠 먹기 (3) - 자바 [27/100] (0) | 2024.06.21 |
[프로그래머스] LV.0 n의 배수 고르기 - 자바 [25/100] (0) | 2024.06.21 |
[프로그래머스] LV.0 가장 큰 수 찾기 - 자바 [24/100] (0) | 2024.06.21 |
[프로그래머스] LV.0 대문자와 소문자 - 자바 [23/100] (0) | 2024.06.21 |