알고리즘 연습/Lv.0

[프로그래머스] 배열 두 배 만들기 JAVA

코딩하는 너구리 2022. 10. 14. 16:42
반응형

 

배열 두 배 만들기

 

문제 설명

정수배열 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합니다.

 

 

 

문제 접근 방식

for 반복문을 사용해 풀이하면 된다고 생각했습니다.

 

class Solution {
    public int[] solution(int[] numbers) {
        for(int i = 0; i < numbers.length; i++) {
            numbers[i] *= 2;
        }
        return numbers;
    }
}

 

 

 

문제 풀이

for 반복문을 주어진 numbers 배열의 길이만큼 반복하며 각 요소에 2를 곱한 결과를 저장해주었습니다.

 

 

 

고수의 풀이

저는 for 반복문을 사용했지만, java 8 문법인 Stream을 사용하면 더 간결한 코드로 정답을 찾을 수 있었습니다.

stream의 map 메소드에서 각 요소인 i에 i*2해준 값들을 Array로 만들어 return 해주었습니다.

 

import java.util.Arrays;

class Solution {
    public int[] solution(int[] numbers) {
        return Arrays.stream(numbers).map(i -> i * 2).toArray();
    }
}

 

 

 

 

 

출처 : https://school.programmers.co.kr/learn/courses/30/lessons/120807

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

반응형