3진법으로 변환하는 과정에서 변환되어진 수가 정수형들의 범위보다 클수있어서 문자열 그대로 다시 변환해주어야한다.
#include <string>
#include <vector>
#include <cmath>
using namespace std;
int solution(int n)
{
int answer = 0, cnt=0;
string s = "";
while (n > 0)
{
s.push_back((n % 3) + '0');//이렇게 넣으면 애초에 뒤집어진 형태로 들어가진다.
n /= 3; cnt++;
}
for(int i=0;i<s.size();i++)
answer += (s[i] - '0')*(int)pow(3,s.size()-i-1);
return answer;
}