[programmers] 배열 두배 만들기 - 120809

iy·2023년 12월 28일

문제 링크

구분

코딩테스트 연습 > 코딩테스트 입문

문제 설명

정수 배열 numbers가 매개변수로 주어집니다. numbers의 각 원소에 두배한 원소를 가진 배열을 return하도록 solution 함수를 완성해주세요.


제한사항
  • -10,000 ≤ numbers의 원소 ≤ 10,000
  • 1 ≤ numbers의 길이 ≤ 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

  • [1, 2, 3, 4, 5]의 각 원소에 두배를 한 배열 [2, 4, 6, 8, 10]을 return합니다.

입출력 예 #2

  • [1, 2, 100, -99, 1, 2, 3]의 각 원소에 두배를 한 배열 [2, 4, 200, -198, 2, 4, 6]을 return합니다.

나의 풀이

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()를 이용해 다시 배열로 바꿔주었다. 이렇게 했을 때 지금은 데이터가 크지 않은 계산이었지만 후에 데이터가 커졌을 때 처리가 더 용이하다고 한다.


👀
짧은 코드였지만 내가 푼 방식보다 훨씬 깔끔한 코드인게 보인다. 조금 더 다양한 방법으로 생각해봐야겠다.

0개의 댓글