


10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오.
10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다.
A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35
첫째 줄에 N과 B가 주어진다. (2 ≤ B ≤ 36) N은 10억보다 작거나 같은 자연수이다.
첫째 줄에 10진법 수 N을 B진법으로 출력한다.
진법 변환의 원리를 이해하고 적용하는 문제이다.
ex)
만약 10진수 '7'을 2진수로 변환한다면,
(2 자리)
(2 자리)
(2 자리)
이므로 7 -> 111이 된다.
이처럼 10진수를 n진수로 변환할 때 몫과 나머지를 이용하는데, 나머지가 10 이상 (두 자리) 일때는 알파벳을 사용하여 나타내므로 0~Z까지 문자열을 생성한 뒤, 나머지로 인덱싱하여 출력을 구한다.
alph = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
n, b = map(int, input().split())
ans = ''
while n != 0:
ans += alph[n % b]
n //= b
print(ans[::-1])
진법 변환 원리를 알고 있으면 쉽게 풀릴 문제이다.
https://www.acmicpc.net/problem/11005