[프로그래머스] 124 나라의 숫자 C++
in Study on Coding Test
진수변환처럼 풀어야 했던 문제
정답제출코드
#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을 활용했다.