(프로그래머스 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함수 활용