알고리즘/programmers

[programmers] 3진법 뒤집기

goldory 2021. 1. 4. 16:20
728x90
반응형

문제 설명

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

제한사항

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

입출력 예시

내 코드

def solution(n):
    answer = 0
    
    three = []
    
    while n != 0:
        n,a = divmod(n,3)
        three.append(a)
    
    for i, val in enumerate(three[::-1]):
        answer += (3**i)*val
        
    
    return answer

1. 3진법으로 바꾸기 (divmod 사용)

2. 10진법으로 바꾸기

 


Python 코드 조각

1. 나누기, 나머지 동시 반환

몫, 나머지 = divmod(전체 수, 나눌 수)

ex) n, a = divmod(n, 3)

2. sorted 안쓰고 역순으로 바꾸기

728x90
반응형