문제 : https://www.acmicpc.net/problem/2745
B진법 수 N을 10진법으로 변환하는 문제.
import sys
input = sys.stdin.readline
# 진법 변환기
def radix(N, B):
match_ = { '0':0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9,
'A': 10, 'B': 11, 'C': 12, 'D': 13, 'E': 14, 'F': 15, 'G': 16, 'H': 17, 'I': 18, 'J': 19,
'K': 20, 'L': 21, 'M': 22, 'N': 23, 'O': 24, 'P': 25, 'Q': 26, 'R': 27, 'S': 28,
'T': 29, 'U': 30, 'V': 31, 'W': 32, 'X': 33, 'Y': 34, 'Z': 35 }
num = 0
loc = 0
for i in N[::-1]:
num += (B**loc) * match_[i] # N진법의 위치 * 그 위치의 값
loc += 1
return num
N, B = input().split() # B진법의 수 N, 진법의 수 B
print(radix(N, int(B)))
[문제풀이]
숫자 뒤에서부터 차례대로 N진법의 위치에 그 위치값을 곱하면 끝.
'코딩테스트 > 백준' 카테고리의 다른 글
| [백준] 11653번 : 소인수분해 (Python) (0) | 2024.12.27 |
|---|---|
| [백준] 11576번 : Base Conversion (Python) (1) | 2024.12.27 |
| [백준] 11005번 : 진법 변환 2 (Python) (0) | 2024.12.27 |
| [백준] 2089번 : -2진수 (Python) (1) | 2024.12.27 |
| [백준] 17298번 : 오큰수 (Python) (0) | 2024.12.27 |