본문 바로가기

코딩테스트/백준

[백준] 11005번 : 진법 변환 2 (Python)

문제 : 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을 적으면 된다.

아주 간단한 진법 변화 로직에 알파벳을 넣기 위한 로직만 추가하면 끝!