• Feed
  • Explore
  • Ranking
/
/
    코딩 테스트 풀이

    [백준] 11005 진법 변환 2

    Python
    J
    J. Hwang
    2025.06.06
    ·
    2 min read

    문제

    10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오.

    10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다.

    A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35


    입력

    첫째 줄에 N과 B가 주어진다. (2 ≤ B ≤ 36) N은 10억보다 작거나 같은 자연수이다.


    출력

    첫째 줄에 10진법 수 N을 B진법으로 출력한다.


    내 풀이

    n, B = map(int, input().split())
    
    remainder = []
    while n > 0:
        remainder.append(n%B)
        n = n // B
        
    dict1 = {k+10:chr(v) for k, v in zip(range(26), range(ord('A'), ord('Z') + 1))}   
    
    answer = ""
    
    for x in reversed(remainder):
        if x >= 10:
            answer += dict1[x]
        else:
            answer += str(x)
        
    print(answer)

    코멘트

    n진법 수를 구하려면 n으로 나눈 나머지를 역순으로 나열해야 한다. 이 때 10 미만의 수는 숫자로 표현하고 10 이상의 수를 알파벳으로 표기해야 한다.


    References

    https://www.acmicpc.net/problem/11005







    - 컬렉션 아티클