풀이:
function solution(n) {
let answer = '';
const numArr = [4, 1, 2];
while(n) {
answer = numArr[n%3] + answer;
n = n%3 === 0 ? n/3 -1 : Math.floor(n/3);
}
return answer;
}
124 나라에선 모든 숫자를 1, 2, 4로 3가지 숫자로만 표현을합니다.
입출력을 보았을때, 정수n 을 3으로 나누어 나머지값을 보았을떄 나머지가 1이면 1, 2이면 2, 0 일떄 4로 표현을 한다는
패턴을 파악할수 있습니다. 그래서 0 번 자리에는 4를 넣어, 순서대로 4,1,2 이란 배열을 만들고.
정수 n 번을 3으로 나누었을떄 나머지갑이 0일떄 까지 돌아가는 while 문을 써주고,
받은 정수 n 을 계속 3 으로 나누어 변환을한 값을 answer 에 넣어줍니다
만약 n 의 나머지값이 0이라면 몫에서 1을 빼야함, 1을 빼면 자리수가 하나 올라가는 것을 막아 문제에서 원하는 답을 찾을 수 있다.
예)
3/3 = 1, 나머지 0 => 14
1,2,4 에선 1을 빼고 나머지값만 출력해야함
6/3 = 2, 나머지 0 => 24
하지만 1,2,4 에선 14 이기에, 1을 뺴줘야 14
나머지값이 0 이 아니라면 그 값을 다시 n에 할당함.