문제 설명
정수 리스트 num_list가 주어질 때, 마지막 원소가 그전 원소보다 크면 마지막 원소에서 그전 원소를 뺀 값을 마지막 원소가 그전 원소보다 크지 않다면 마지막 원소를 두 배한 값을 추가하여 return하도록 solution 함수를 완성해주세요.

Solution 1) 내 풀이
import java.util.Arrays;
class Solution {
public int[] solution(int[] num_list) {
int[] answer = Arrays.copyOf(num_list, num_list.length + 1);
if (num_list[num_list.length-1] > num_list[num_list.length-2]) {
answer[answer.length-1] = (num_list[num_list.length-1] - num_list[num_list.length-2]);
} else {
answer[answer.length-1] = (num_list[num_list.length-1] * 2);
}
return answer;
}
}
기존 배열에 요소 하나가 추가 돼야 하는 문제 였다.
반복문으로 기존의 요소를 추가 후 새로운 요소를 추가하게 만들 수도 있었다.
하지만 다른 방식은 없을까 해서 찾아보니 Arrays.copy 메서드를 찾아낼 수 있었다.
public static int[] copyOf(int[] original, int newLength)의 형태로 작성 되며,
(예시에서 int[] answer = Arrays.copyOf(num_list, num_list.length + 1); 부분)
- original : 복사할 원래 배열
- newLenghth : 새 배열의 길이
형태로 사용 됐다.
'연습문제 > 프로그래머스, 기초 트레이닝' 카테고리의 다른 글
| 수 조작하기2 (switch 문 사용하기) (0) | 2023.10.22 |
|---|---|
| 수 조작하기1 ( switch문) (0) | 2023.10.22 |
| 이어 붙인 수 (편한 형변환 생각해보기) (1) | 2023.10.21 |
| 등차수열의 특정한 항만 더하기 (Stream 생각해보기) (1) | 2023.10.21 |
| 코드 처리하기 (삼항 연산자의 활용) (0) | 2023.10.21 |