
아래 백준 로고를 클릭하면 해당 문제로 이동합니다 😀
만약 입력으로 ABCDE 36이 들어왔다고 가정해보자.
진법 변환은 다음과 같이 할 수 있다.
| A | B | C | D | E |
|---|---|---|---|---|
해당값을 모두 더하면 16,796,160 + 513,216 + 15,552 + 468 + 14 = 17,325,410이 된다.
코드는 우선 0~Z까지 있는 문자열을 만들었다.
이 문자열의 인덱스를 이용하면 A를 10으로, Z를 35로 바꿔줄 수 있다.
후에 입력받은 N을 뒤집어서 가장 오른쪽부터 계산하게 했다.
for문을 0부터 N의 길이만큼 반복해서 b의 지수가 for문이 증가함에 따라 같이 증가하게 작성했다.
num = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
n, b = input().split()
n = ''.join(reversed(n))
b = int(b)
result = 0
for x in range(len(n)):
result += num.index(n[x]) * (b ** x)
print(result)
