프로그래머스 마지막 두 원소

KIMYEONGJUN·2026년 5월 12일
post-thumbnail

문제

내가 생각했을때 문제에서 원하는부분

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

내가 이 문제를 보고 생각해본 부분

solution 메서드는 문제 조건에 따라 배열의 마지막 두 원소를 비교한다.
마지막 원소가 이전 원소보다 크면 두 원소의 차이를 계산하고, 그렇지 않으면 마지막 원소의 두 배를 구한다.
기존 배열보다 크기가 하나 큰 새 배열을 만들고 원래 배열을 복사한다.
새 배열 마지막에 계산한 값을 추가한다.
main 메서드는 두 가지 테스트 케이스를 실행하며, 결과를 출력한다.
Arrays.toString 메서드를 이용해 배열을 문자열로 변환하여 출력한다.

코드로 구현

class Solution {
    public int[] solution(int[] num_list) {
        int n = num_list.length;
        int last = num_list[n - 1];
        int prev = num_list[n - 2];
        int addValue;
        
        if (last > prev) {
            addValue = last - prev;
        } else {
            addValue = last * 2;
        }

        int[] answer = new int[n + 1];
        for (int i = 0; i < n; i++) {
            answer[i] = num_list[i];
        }
        
        answer[n] = addValue;
        return answer;
    }
}

프로그래머스 코드

package programmers;

import java.util.Arrays;

// 프로그래머스 마지막 두 원소
public class Main18 {
    public static int[] solution(int[] num_list) {
        int n = num_list.length;
        int last = num_list[n - 1];
        int prev = num_list[n - 2];
        int addValue;

        if (last > prev) {
            addValue = last - prev;
        } else {
            addValue = last * 2;
        }

        int[] answer = new int[n + 1];
        for (int i = 0; i < n; i++) {
            answer[i] = num_list[i];
        }

        answer[n] = addValue;
        return answer;
    }

    public static void main(String[] args) {
        // 테스트 케이스 1
        int[] test1 = {2, 1, 6};
        System.out.println("Test 1 결과: " + Arrays.toString(solution(test1)));

        // 테스트 케이스 2
        int[] test2 = {5, 2, 1, 7, 5};
        System.out.println("Test 2 결과: " + Arrays.toString(solution(test2)));
    }
}

위에 있는 코드를 변경한 코드

마무리

코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.

profile
Junior backend developer

0개의 댓글