[프로그래머스 Level 1] 3진법 뒤집기

문제

3진법 뒤집기  

 

자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.

 

제한사항

  1. n은 1 이상 100,000,000 이하인 자연수입니다.

 

코드

#include <vector>

using namespace std;

int solution(int n)
{
    int answer = 0;
    int digit = 1;
    vector<int> v;

    while (n > 0)
    {
        v.push_back(n % 3);
        n = n / 3;
    }

    while (!v.empty())
    {
        answer += v.back() * digit;
        v.pop_back();
        digit *= 3;
    }

    return answer;
}

 

나의 생각