1일 1솔

[백준] 11005번: 진법 변환 2 (Python, 파이썬)

junmukbap98 2023. 9. 6. 01:30

문제 링크: https://www.acmicpc.net/problem/11005

 

11005번: 진법 변환 2

10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를

www.acmicpc.net

Key point

  1. 아스키 (ascii) 코드 변환 함수
    (1) ord('문자'): '문자' -> 아스키 코드
    (2) chr(아스키코드): 아스키 코드 -> '문자'
  2. 결과를 출력할 때 (진법 변환할 때) 위 그림처럼 거꾸로 올라가면서 표현됨 --> 문자열 거꾸로 출력 res[::-1]
n, b = map(int, input().split())
a = []

for i in range(10):
    a.append(str(i))
for i in range(65, 91):
    a.append(chr(i))

res = ''

while n >= b:
    r = n % b
    n = n // b
    res += a[r]

res += a[n] # 마지막 몫도 이어 붙여 준다.
print(res[::-1]) # 이어 붙인 순서의 거꾸로 출력