Post

[Programmers] #181927 - 마지막 두 원소 [Java][C++][Python]

리스트의 마지막 두 원소를 비교해 그 결과를 리스트 끝에 추가하는 워밍업 문제.

[Programmers] #181927 - 마지막 두 원소 [Java][C++][Python]

문제 링크


1. 아이디어

정수 리스트 num_list가 주어질 때, 마지막 원소와 그 이전 원소를 비교해 마지막 원소가 더 크면 두 값의 차를, 그렇지 않으면 마지막 원소의 2배를 리스트 끝에 추가해 반환하면 되는 문제다.


2. 복잡도

접근시간공간
풀이$O(N)$$O(N)$

($N$ = num_list의 길이)


3. 코드

풀이 [Java][C++][Python]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Solution {
    public int[] solution(int[] num_list) {
        int n = num_list.length;
        int[] ans = new int[n + 1];
        System.arraycopy(num_list, 0, ans, 0, n);

        if (num_list[n - 1] > num_list[n - 2]) {
            ans[n] = num_list[n - 1] - num_list[n - 2];
        } else {
            ans[n] = num_list[n - 1] * 2;
        }

        return ans;
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <bits/stdc++.h>
using namespace std;

vector<int> solution(vector<int> num_list) {
    int n = (int)num_list.size();

    if (num_list[n - 1] > num_list[n - 2]) {
        num_list.push_back(num_list[n - 1] - num_list[n - 2]);
    } else {
        num_list.push_back(num_list[n - 1] * 2);
    }

    return num_list;
}
1
2
3
4
5
6
7
def solution(num_list):
    if num_list[-1] > num_list[-2]:
        num_list.append(num_list[-1] - num_list[-2])
    else:
        num_list.append(num_list[-1] * 2)

    return num_list

This post is licensed under CC BY 4.0 by the author.