인천의 자유인

[Python] 3진법 뒤집기 - 프로그래머스(Lv.1) 본문

Python/Python코딩테스트

[Python] 3진법 뒤집기 - 프로그래머스(Lv.1)

Youngook 2024. 5. 22. 08:03
728x90
반응형

반응형

 

 

나의 문제 풀이

def solution(n):
    answer = ''
    while True:
        remain = n%3
        answer = str(remain) + answer
        n = n//3
        if n==0: break
    result = 0
    for i in range(len(answer)):
        result = result + (int(answer[i])*(3**i))
    return result

 

거꾸로된 3진법을 바로 구하기 위해 while True을 했습니다. 3진법의 숫자들은 나머지들이기 때문에 나머지를 구한 후 remain을 문자로 바꿔서  answer에 더해줍니다. 여기서 answer = answer + str(remain)을 하지 않고 answer = str(remain) +answer을 한 이유는 나중에 구지 뒤집어서 코드가 길어지지 않게 처음부터 뒤집은 3진법을 구합니다.

그리고 뒤집에서 3진법을 구하기 위해 result라는 변수를 만들었고 for문을 통해 3진법에서 10진법으로 표현하는 공식을 사용하여 풀었습니다.

728x90
반응형