본문 바로가기
Algorithm/programmers

[프로그래머스] 68935 | 3진법 뒤집기

by 밤초록 2022. 1. 11.
68935 | 3진법 뒤집기
https://programmers.co.kr/learn/courses/30/lessons/68935

 

 

 

작성 코드

 

# 재귀를 이용해 10진법에서 3진법으로 변환
def to_10_3(n):
    if n < 3:
        return str(n)
    else:
        return str(n % 3) + to_10_3(int(n//3))


def solution(n):
    a = list(to_10_3(n)[::-1])
    # 진법 계산하는 방법을 통해 각 자리수 계산 후 sum값 반환
    answer = [int(i) * (3**idx) for idx, i in enumerate(a)]
    return sum(answer)

 

 

이상 코드

 

def solution(n):
    tmp = ''
    while n:
        tmp += str(n % 3)
        n = n // 3

    answer = int(tmp, 3)
    return answer

 

 

학습

 

  • 차례대로 나머지를 구한 후 뒤집으면 됨
  • n이 2이하일 때 n//3이 0이 돼서 while문을 빠져 나옴
  • n진수에서 10진수로 변환하고 싶을 때 int를 사용하면 됨
반응형

댓글