728x90
[문제]
https://www.acmicpc.net/problem/11005
11005번: 진법 변환 2
10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를
www.acmicpc.net
[코드]
numList = {10:'A', 11:'B',12:'C',13:'D',14:'E',15:'F',
16:'G',17:'H',18:'I',19:'J',20:'K',21:'L',
22:'M',23:'N',24:'O',25:'P',26:'Q',27:'R',
28:'S',29:'T',30:'U',31:'V',32:'W',33:'X',
34:'Y',35:'Z'}
n, x = map(int,input().split())
answer = ''
while n > 0:
n, mod = divmod(n,x)
if mod >= 10:
answer += numList[mod]
else:
answer += str(mod)
print(answer[::-1])
코드 풀이
- 딕셔너리로 10 이상 수를 문자로 저장
- divmod(x, y) 함수 : x//y , x%y 값을 반환한다.
- 나머지가 10 이상이면 딕셔너리에서 해당하는 문자를 찾아 answer string에 추가
- 진수는 반대로 입력되기 때문에 [::-1] 거꾸로 출력
반응형
'🚩 Coding Test > Baekjoon' 카테고리의 다른 글
[BOJ][Python] 1260 DFS와 BFS (0) | 2024.04.08 |
---|---|
[BOJ][Python] 9506 약수들의 합 (0) | 2024.04.05 |
[BOJ][Python] 2563 색종이 (0) | 2024.04.02 |
[BOJ][Python] 10798 세로읽기 (0) | 2024.04.02 |
[BOJ][Python] 2566 최댓값 (1) | 2024.04.02 |