/ ALGORITHM

(프로그래머스 with python) 3진법 뒤집기


LEVEL1 3진법 뒤집기

https://programmers.co.kr/learn/courses/30/lessons/689354


def exchange(d, n):
    tmp = ''
    while d:
        tmp += str(d % n)
        d //= n
    return tmp[::-1]

def solution(n):
    answer = 0
    three_num = exchange(n, 3)
    reverse_three_num = three_num[::-1]
    return int(reverse_three_num, 3)

solution(45)


def solution(n):
    tmp = ''
    while n:
        tmp += str(n % 3)
        n = n // 3
    answer = int(tmp, 3)
    return answer



진수 변환 정리


n 진수 -> 10진수

int()를 활용하자

# n진수 -> 10진수
def exchange(n, num):
  return int(n, num)

exchange(46, 3) # 3진수 -> 10진수


10진수 -> 2, 8, 16진수

파이썬에서 제공하는 메서드를 활용하자

print(bin(11)) # 2진수
print(oct(11)) # 8진수
print(hex(11)) # 16진수


10진수 -> n진수 - 1

def exchange(n, num):
  tmp = ''

  while n:
    tmp += str(n % num)
    n //= num
  return tmp[::-1]


10진수 -> n진수 - 2

def exchange(n, num):
  tmp = ''

  while n:
    n, mod = divmod(n, num)
    tmp += str(mod)

  return tmp[::-1]


n진수 -> n진수

위의 함수 exchange와 int()를 활용하자

# n진수 -> n진수
print(exchange(int('45', 3), 7)) # 3진수인 45를 7진수로 변환, exchange함수 활용