✨컴공주✨ [1052682] · MS 2021 · 쪽지

2025-01-24 00:45:07
조회수 123

컴공 일기268

게시글 주소: https://h.orbi.kr/00071514726


https://school.programmers.co.kr/learn/courses/30/lessons/12906


프로그래머스 문제 풀이 중입니다.


스케치하는데 한 10분,

구현하는 데 한 5분 걸린 것 같군요.


스택을 쌓았다가, 순서대로 pop 시키고 그 값을 result에 집어넣으면 됩니다.

매우 기초적인 문제라 할 수 있겠네요.


#include <iostream>

#include <vector>

#include <stack>


using namespace std;


vector<int> solution(vector<int> arr) 

{

    stack<int> st;

    

    int size = arr.size();

    st.push(arr[size-1]);

    

    for(int i=size-2; i>=0; i--)

    {

        if(st.top() != arr[i])

        {

            st.push(arr[i]);

        }

    }

    

    int st_size = st.size();

    

    vector<int> answer(st_size);

    

    int tmp_idx = 0;

    while(st_size > tmp_idx)

    {

        int element = st.top();

        answer[tmp_idx++] = element;

        st.pop();

    }


    return answer;

}

0 XDK (+0)

  1. 유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.


  • 첫번째 댓글의 주인공이 되어보세요.