프로그래머스 Lv2. 124 나라의 숫자

용상윤·2021년 5월 10일
0

문제

연습문제
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을 빼줘야 한다.


코드

js

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
}

python

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

profile
달리는 중!

0개의 댓글