function solution(n) {
let i = 1;
let sum = 0;
while (true) {
const next = 3 ** i;
if (sum + next >= n) break;
sum += next;
++i;
}
let result = '';
for (let j = 1; j <= i; ++j) {
let rest = n % 3;
if (rest === 1) result = '1' + result;
else if (rest === 2) result = '2' + result;
else if (rest === 0) result = '4' + result;
n = Math.floor(n / 3);
if (rest === 0) --n;
}
return result;
}
풀릴 듯 말 듯 안 풀려서 사람들 힌트를 참고했다.
0이 존재하지 않으므로 3으로 나눠떨어지는 수는 몫을 하나 낮춰서 나머지를 3으로 만들어주어야 한다는 게 포인트였다.
다들 124 나라 망했으면 좋겠다는 말에 공감했다.