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));
	}
}


프로그래머스 코드