(Python, Java) 프로그래머스 - 3진법 뒤집기

[문제 링크]

PYthon 풀이1

from collections import deque


def solution(n):
    answer = 0
    multi = 1

    q = deque()

    while n > 0:
        q.appendleft(n % 3)
        n //= 3

    for idx in range(len(q)):
        answer += q[idx] * multi
        multi *= 3

    return answer

Python 풀이2

def solution(n):
    answer = ""

    while n > 0:
        answer += str(n % 3)
        n //= 3

    return int(answer, 3)

int의 인자로 숫자와 표현된 진법을 전달하면 10진수로 반환해준다.

Java 풀이

class Solution {
    public int solution(int n) {
        StringBuilder sb = new StringBuilder();
        while (n >= 3) {
            sb.append(n % 3);
            n /= 3;
        }
        sb.append(n);

        return Integer.parseInt(sb.toString(), 3);
    }
}

© 2021. By Backtony