문제 링크
https://www.acmicpc.net/problem/11005
11005번: 진법 변환 2
10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를
www.acmicpc.net
문제
문제 풀이
진법 변환 과정이 갑자기 기억이 안나서 헤맸다..ㅋㅋㅋ
B진법으로 변환하려면 10진수 N을 숫자 B로 나머지가 0이 될 때까지
계속 나누어 나온 나머지를 저장하고 그 저장된 나머지를 반대로 표현하면 변환이 완료된 것이다.
이것을 코드로 표현하면 문제 풀이는 끝난다.
또 한가지 주의할 점은 10부터 35까지는 숫자 표현이 불가능하므로
미리 문자열에 알파벳을 저장해두어야 한다.
N, B = map(int, input().split())
table = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
result = ""
while N != 0:
result += table[N % B]
N //= B
print(result[::-1])
'Algorithm > BOJ' 카테고리의 다른 글
[백준] 1373 2진수 8진수 (파이썬 python) (0) | 2022.01.25 |
---|---|
[백준] 2745 진법 변환 (파이썬 python) (0) | 2022.01.25 |
[백준] 9613 GCD 합 (파이썬 python) (0) | 2022.01.25 |
[백준] 1850 최대공약수 (파이썬 python) (0) | 2022.01.25 |
[백준] 1934 최소공배수 (파이썬 python) (0) | 2022.01.25 |