티스토리 뷰
[문제 설명]
정수 리스트 num_list가 주어질 때, 마지막 원소가 그전 원소보다 크면 마지막 원소에서 그전 원소를 뺀 값을 마지막 원소가 그전 원소보다 크지 않다면 마지막 원소를 두 배한 값을 추가하여 return하도록 solution 함수를 완성해주세요.
[제한 사항]
2 ≤ num_list의 길이 ≤ 10
1 ≤ num_list의 원소 ≤ 9
[입출력 예]
[입출력 예 설명]
입출력 예 #1
마지막 원소인 6이 그전 원소인 1보다 크기 때문에 6 - 1인 5를 추가해 return합니다.
입출력 예 #2
마지막 원소인 5가 그전 원소인 7보다 크지 않기 때문에 5의 두 배인 10을 추가해 return합니다.
Solution.java
import java.util.Arrays;
class Solution {
public int[] solution(int[] num_list) {
int n = num_list.length;
int[] answer = Arrays.copyOf(num_list, n + 1);
// Arrays.copyOf 사용으로 기존 배열 복사 + 새 공간 확보
answer[answer.length - 1] = num_list[n - 1] > num_list[n - 2]
? num_list[n - 1] - num_list[n - 2]
: num_list[n - 1] * 2;
return answer;
}
}
- 배열 복사 시, 굳이 for문 사용하지 않고 Arrays.copyOf()로
기존 배열 원소를 복사하면서, + 1 의 공간을 확보 - ? : 삼항 연산자 이전엔 if 구문을 사용했으나, 가독성이 떨어져 수정
'알고리즘 공부⛏️' 카테고리의 다른 글
[Java / 프로그래머스] 약수의 합 (0) | 2025.04.06 |
---|---|
[Java / 프로그래머스] 정수 부분 (0) | 2025.03.29 |
[Java / 프로그래머스] 문자열의 앞의 n글자 (0) | 2025.03.29 |
[Java / 프로그래머스] 접두사인지 확인하기 (0) | 2025.03.26 |
[Java / 프로그래머스] 배열 만들기 1 (0) | 2025.03.26 |
댓글