Coding Test/Java Coding Test
[프로그래머스 / 자바] - 마지막 두 원소
nam_ji
2023. 11. 25. 19:04
마지막 두 원소
문제
- 정수배열 num_list가 매개변수로 주어집니다.
- num_list의 마지막 원소가 그 전 원소보다 크면
마지막 원소 뺴기 그 전 원소
num_list의 마지막 원소가 그 전 원소보다 작으면
마지막 원소를 두 배한 값을 새로운 배열에 추가하여 출력하는 문제입니다.
테스트 (이클립스)
- 일단 마지막 원소와 그 전 값의 비교 값을 저장할 변수 endNum을 선언해 줍니다.
- 출력할 answer를 num_list의 값을 복사한 후 크기를 키우기 위해 Arrays함수의 copyOf() 메소드를 사용하였습니다.
Arrays.copyOf(복사할 원본, 복사할 크기 지정); - if문을 사용하여 num_list의 마지막 값과 그 전 값을 비교하여 그에 맞는 연산식을 endNum에 담습니다.
- 마지막에 answer에 endNum을 추가하여 answer를 출력하면 됩니다.
package com.namji.codingtest;
import java.util.Arrays;
public class LastTwoElements {
public static void main(String[] args) {
/*
* 매개변수로 정수 리스트 num_list가 주어집니다.
* num_list의 마지막 원소가 그 전 원소보다 크면
* 마지막 원소 빼기 그 전 원소
* num_list의 마지막 원소가 그 전 원소보다 작으면
* 마지막 원소를 두 배한 값을 추가하여 출력하는 문제입니다.
* ex) "2, 1, 6" - [2, 1, 6, 5] / "5, 2, 1, 7, 5" - [5, 2, 1, 7, 5, 10]
*/
int [] num_list = {5, 2, 1, 7, 5};
int endNum = 0;
int[] answer = Arrays.copyOf(num_list, num_list.length+1);
if (num_list[num_list.length-1] > num_list[num_list.length-2]) {
endNum = num_list[num_list.length-1] - num_list[num_list.length-2];
} else {
endNum = num_list[num_list.length-1] * 2;
}
answer[num_list.length] = endNum;
System.out.print(Arrays.toString(answer));
}
}