연습문제
https://programmers.co.kr/learn/courses/30/lessons/12899
n을 3으로 나눠보면,
n % 3 = 몫 ... 나머지
n=1) 1 % 3 = 0 ... 1
n=2) 2 % 3 = 0 ... 2
n=3) 3 % 3 = 1 ... 0
n=4) 4 % 3 = 1 ... 1
n=5) 5 % 3 = 1 ... 2
.
.
.
n=12) 12 % 3 = 4 ... 0
n=13) 13 % 3 = 4 ... 1
의 형태이다. 이때 나머지들을 배열의 index
로 본다면
numbers = [4, 1, 2]
로 표현할 수 있다.
n이 0이 될 때 까지 3으로 계속해서 나누고 나머지를 붙여나가면 된다.
단, 나누어 떨어질 경우, 몫에서 1을 빼줘야 한다.
function solution(n) {
let result = "";
const numbers = ["4","1","2"];
let num = n;
while(num > 0){
result = numbers[num%3] + result;
if(num%3 == 0){
num = Math.floor(num/3)-1;
} else {
num = Math.floor(num/3);
}
}
return result
}
def solution(n):
result = ""
numbers = ["4", "1", "2"]
num = n
while num > 0 :
result = numbers[num%3] + result;
if num%3 == 0 :
num = (num//3) - 1
else :
num = num//3
return result