본문 바로가기
코딩테스트 준비/프로그래머스

[프로그래머스][C++] 마지막 두 원소

by 스테디코디스트 2023. 10. 27.
반응형

<문제 소개>


<소스 코드>

#include <string>
#include <vector>

using namespace std;

vector<int> solution(vector<int> num_list) 
{
    vector<int> answer = num_list;
    
    int lastIndex = num_list.size() - 1; // 마지막 인덱스
    int addNum; // 추가할 숫자
    
    if(num_list[lastIndex] > num_list[lastIndex - 1])
    {
        // 마지막 원소 > 마지막 직전 원소
        addNum = num_list[lastIndex] - num_list[lastIndex - 1];
    }
    else
    {
        // 마지막 원소 <= 마지막 직전 원소
        addNum = 2 * num_list[lastIndex];
    }
    
    answer.push_back(addNum);
    
    return answer;
}

<풀이과정>

1. answer에 입력받은 num_list를 대입

2. 마지막 인덱스를 lastIndex 변수에 넣어주고, 추가할 숫자 addNum을 선언

3. 마지막 원소와 마지막 직전 원소를 비교

3-1. 마지막 원소가 큰 경우는 addNum에 마지막 원소에서 마지막 직전 원소를 뺀 값을 넣어줌

3-2. 마지막 원소가 크지 않은 경우 addNum에 마지막 원소의 2배의 값을 넣어줌

4. 위의 과정에서 구한 addNum을 answer에 추가하고 answer을 리턴해줌


<코멘트>

쉽게 풀었다.


<제출결과>