Baekjoon/단계별로 풀어보기

[백준][8단계 일반 수학 1] 11005번 /진법 변환 2 (파이썬/Python)

junslee 2025. 3. 28. 11:20

1. 문제 설명

2. 풀이 과정

십진수 N과 B진법을 입력받으므로 map(int,input().split())로 입력을 불러온다.

alpha에 숫자에 맞는 알파벳을 연결해야 하므로 숫자의 범위는 range(10,36)으로 i에 불러오고

알파벳은 chr(i+ord('A')-10)으로 불러온다.

결과를 넣은 result를 빈 문자열로 초기화한다.

N>0 조건을 반복하게 while문을 작성한다.

나머지를 remainder에 N%B로 계산해 넣는다.

remainder가 10보다 작으면 remainder를 str()로 문자변환하여 result에 추가한다.

10보다 크면 alpha[remainder]으로 알파벳을 result에 추가한다.

+으로 하는 이유는 역순으로 문자가 저장되어야 하기 때문이다.

N을 몫으로 N//B 계산하여 초기화하고 반복문을 진행한다.

while문을 빠져나오면 result를 출력한다.

3. 코드

N,B = map(int,input().split())

alpha = {i:chr(i + ord('A')-10) for i in range(10,36)}
result = ''
while N > 0:
    remainder = N % B
    if remainder<10:
        result = str(remainder) + result
    else:
        result = alpha[remainder] + result
    N = N // B
print(result)