[프로그래머스] 124 나라의 숫자 C++


진수변환처럼 풀어야 했던 문제

정답제출코드


#include <string>
#include <vector>
#include <stack>

using namespace std;

char nara[3] = {'4', '1', '2'};

string solution(int n) {
    string answer = "";
    
    stack<char> st;
    
    while (n > 0)
    {
        bool flag = false;
        st.push(nara[n%3]);
        
        if (n % 3 == 0)
            flag = true;
        
        n /= 3;
        
        if (flag)
            n--;
    }
    
    while (!st.empty())
    {
        answer += st.top();
        st.pop();
    }

    return answer;
}


n을 3으로 나눈 나머지가 0일 경우 4를 넣어주고 1을 빼준다.

그리고 나머지가 1일 경우 1, 2일 경우 2를 넣어주도록 했다.

그리고 넣어준 순서대로 반대로 꺼내서 answer에 넣어주기 위해서 stack을 활용했다.


© 2022.07. by Wookey_Kim

Powered by Hydejack v7.5.2