728x90

문제 61. (2021-06-30)

 

 

 

코딩테스트 연습 - 3진법 뒤집기

자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수

programmers.co.kr

Programmers. 3진법 뒤집기

자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.

 

제한사항

* n은 1 이상 100,000,000 이하인 자연수입니다.

 

❧ 입출력 예


❧ 정답

def solution(n):
    list_n = []
    while (n > 0):
        list_n.append(n % 3)
        n //= 3
    list_n.reverse()
    answer = 0
    for i in range(len(list_n)):
        answer += (3 ** i) * list_n[i]

    return answer

1️⃣ While_문의 조건식을 _n > 3 으로 해서 n이 3인 경우, 조건식에 들어가지 않는 문제가 발생함

n > 0 으로 변경

728x90