본문 바로가기
Beakjoon&프로그래머스/파이썬

[백준/파이썬]1740번 거듭제곱

by 현장 2021. 9. 23.

-코드

n = int(input())
arr = []
r = 0
while n > 0:
    arr.append(n % 2)
    n //= 2
for i in range(len(arr)):
    r += arr[i] * (3 ** i)
print(r)

처음에 무슨 말인지 이해를 못해서 찾아보니 2진수와 비슷하게 2진수는 각 자리마다 2의 i승(i >= 0)이지만 이것은 각 지리마다 3의 i승의 수 중 n번째로 작은 수를 구하는 문제임을 알게 되었습니다.

하지만 0101과 같은 2진수를 n에 의해서 만드는 법을 처음에 3 제곱에 치중하여 생각하다가 찾지를 못해서 고민하다가 2진수에 대해서 보고 해결을 하게 되었습니다. 생각의 방향을 이상하게 잡아서 해결을 쉽게 하지 못해서 아쉬운 문제였습니다.