728x90
[백준알고리즘] 11005번: 진법 변환 2 -Python
https://www.acmicpc.net/problem/11005
11005번: 진법 변환 2
10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다. A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35
www.acmicpc.net
이전에 ord()를 사용해서 아스키코드를 숫자로 변환해준 2745번 진법 변환과 달리 10진수를 해당 진법에 맞게 변환해줘야 한다.
따라서 여기서는 chr()을 사용했다. str()는 인자값을 그대로 문자열로 바꾸는 것이지만 chr()의 경우 주어진 정수 값에 맞는 아스키 값을 출력하게 된다. 즉 chr(65) = 'A' 가 된다.
import sys
before, base = map(int, sys.stdin.readline().split())
after = []
while before // base:
after.append(before%base)
before //= base
if before:
after.append(before)
after =list(map((lambda x:chr(x+55) if x > 9 else str(x)), after))
sys.stdout.write(''.join(after[::-1]))
잘못된 점이나 부족한 점 지적해주시면 감사하겠습니다
728x90
'algorithm > 백준알고리즘' 카테고리의 다른 글
[백준알고리즘] 11576번: Base Conversion -Python (0) | 2020.02.21 |
---|---|
[백준알고리즘] 2089번: -2진수 -Python (0) | 2020.02.21 |
[백준알고리즘] 2745번: 진법 변환 -Python (0) | 2020.02.18 |
[백준알고리즘] 9613번: GCD 합 -Python (0) | 2020.02.18 |
[백준알고리즘] 1850번: 최대공약수 -Python (0) | 2020.02.18 |