문제

조건이 하나 추가된 삼진법 문제. 3으로 나누어 떨어지는 경우에만 n에서 1을 빼주면 된다!

구현

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

string solution(int n) {
	string answer = "";
	while (n) {
		int r = n % 3;
		switch (r) {
		case 0:
			answer = "4" + answer;
			n = n / 3 - 1;
			break;
		case 1:
			answer = "1" + answer;
			n /= 3;
			break;
		case 2:
			answer = "2" + answer;
			n /= 3;
			break;
		default:
			break;
		}
	}
	return answer;
}

string solution2(int n) {
	string answer = "";
	int r;
	while (n) {
		r = n % 3;
		n /= 3;
		if (!r) n--;
		answer = "412"[r] + answer;
	}
	return answer;
}