알고리즘/프로그래머스
[프로그래머스][자바스크립트][Level2] 124 나라의 숫자
Benjamin_Choi
2021. 7. 21. 20:02
function solution(n) {
var answer = new Array(18).fill(0);
var num = n;
for (let i = 18; i > -1; i--) {
const powNum = Math.pow(3, i);
if (i === 0) {
answer[i] === num;
} if (num >= powNum * 2) {
answer[i] = 2;
num-=powNum*2;
} else if (num >= powNum) {
answer[i] = 1;
num-=powNum;
}
}
answer.reverse();
while (true) {
answer = answer.slice(answer.findIndex(item => item > 0));
if (answer.indexOf(0) === -1) {
break;
}
for (let i=1; i<answer.length; i++) {
if (answer[i-1] > 0 && answer[i] === 0) {
answer[i-1]-=1;
answer[i] = 3;
}
}
}
return answer.filter(item => item !==0).map(item => {
if (item === 3) return 4;
else return item;
}).join("");
}
3진법 접근은 좋았다. 그리곤 큰 수부터 쪼개고 뺄게 아니라 뒤에서부터 %로 나눠가면서 처리하는게 더 좋았을 것 같다.
그래도 고생했다.