조건이 하나 추가된 삼진법 문제. 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;
}