[ 알고리즘풀이 ]

3진법처럼 n을 3으로 나눠가면서 나머지에 따라 값을 answer에 변환되는 수를 쌓고, 반대로 출력해주면 된다.

#include <string>
#include <vector>
#include <algorithm>
using namespace std;

string solution(int n) {
	string answer = "";
	while (n) {
		if (n % 3 == 1)
			answer += '1';
		else if (n % 3 == 2)
			answer += '2';
		else
			answer += '4';
		n--;
		n /= 3;
	}
	reverse(begin(answer), end(answer));
	return answer;
}

 

+ Recent posts