코딩테스트 연습 > 코딩테스트 입문
정수 배열 numbers가 매개변수로 주어집니다. numbers의 각 원소에 두배한 원소를 가진 배열을 return하도록 solution 함수를 완성해주세요.
numbers의 원소 ≤ 10,000numbers의 길이 ≤ 1,000| numbers | result |
|---|---|
| [1, 2, 3, 4, 5] | [2, 4, 6, 8, 10] |
| [1, 2, 100, -99, 1, 2, 3] | [2, 4, 200, -198, 2, 4, 6] |
입출력 예 #1
입출력 예 #2
나의 풀이
class Solution { public int[] solution(int[] numbers) { int[] answer = new int[numbers.length]; for(int i = 0;i < numbers.length ; i++) answer[i] = numbers[i] * 2; return answer; } }반복문으로 각 배열 원소에 두배해줘 return될 배열에 담았다.
다른 분 풀이
import java.util.Arrays; class Solution { public int[] solution(int[] numbers) { return Arrays.stream(numbers).map(i -> i * 2).toArray(); } }stream을 이용해 배열을 스트림으로 변환 후 map을 이용해 람다식으로 각 요소에 함수를 적용하고 toArray()를 이용해 다시 배열로 바꿔주었다. 이렇게 했을 때 지금은 데이터가 크지 않은 계산이었지만 후에 데이터가 커졌을 때 처리가 더 용이하다고 한다.
👀
짧은 코드였지만 내가 푼 방식보다 훨씬 깔끔한 코드인게 보인다. 조금 더 다양한 방법으로 생각해봐야겠다.