[프로그래머스 | 파이썬] 3진법 뒤집기

devheyrin·2022년 6월 13일
0

codingtest

목록 보기
54/65

문제 링크

https://programmers.co.kr/learn/courses/30/lessons/68935

코드

def solution(n):
    ternary = getTernary(n)
    decimal = getDecimal(ternary)
    return decimal

def getTernary(n):
    answer = ''
    while True:
        answer += str(n % 3)
        if n // 3 == 0:
            break
        n //= 3
    return answer[::-1]

def getDecimal(n):
    answer = 0
    for index, num in enumerate(n):
        answer += int(num) * (3**index)
    return answer

풀이 설명

3진법으로 변환하는 함수, 3진법을 다시 10진법으로 변환하는 함수를 각각 작성했다.
3진수를 구하는 함수에서 반복문을 다 돌고 나면 0021 처럼 뒤집힌 3진수가 나오는데,
10진수로 변환하는 과정에서 각 자릿수를 제곱수로 활용하면 쉽게 계산할 수 있기 때문에 뒤집힌 그대로 리턴하지 않고 1200처럼 실제 3진수가 나오도록 작성했다.

profile
개발자 헤이린

0개의 댓글