문제 : https://www.acmicpc.net/problem/11005
10진수 N과 진법의 수 B를 받아, N을 B진법으로 바꿔 출력하는 문제다.
이때, 숫자 10을 넘어가는 숫자는 대문자를 사용해 표시한다.
import sys
import math
input = sys.stdin.readline
# 진법 변환기
def radix(N, B):
match_ = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
tf = ''
while(N > 0):
tf += match_[N%B] # 나머지 숫자랑 알파벳이랑 매칭해서
N = (N//B) # B로 나눈 몫을 구함
return tf[::-1] # 역순으로 return
N, B = map(int, input().split()) # 10진수 N, 진법의 수 B
print(radix(N, B))
[문제풀이]

10진수를 N진법으로 변환하는건 2진법으로 변환하기 위해 숫자 2를 사용하는 자리에 N을 적으면 된다.
아주 간단한 진법 변화 로직에 알파벳을 넣기 위한 로직만 추가하면 끝!
'코딩테스트 > 백준' 카테고리의 다른 글
| [백준] 11576번 : Base Conversion (Python) (1) | 2024.12.27 |
|---|---|
| [백준] 2745번 : 진법 변환 (Python) (2) | 2024.12.27 |
| [백준] 2089번 : -2진수 (Python) (1) | 2024.12.27 |
| [백준] 17298번 : 오큰수 (Python) (0) | 2024.12.27 |
| [백준] 17103번 : 골드바흐 파티션 (Python) (2) | 2024.12.27 |