Algorithm/BOJ

[백준] 2745 진법 변환 (파이썬 python)

YOONJELLY 2022. 1. 25. 23:10

 

 

문제 링크

 

 

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

 

2745번: 진법 변환

B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 

www.acmicpc.net

 

 

문제

 

 

 

 

 

문제 풀이

 

 

1234(2)를 10진수로 변환하려 할 때

2^3 * 1 + 2^2 * 2 + 2^1 * 3 + 2^0 * 4 의 계산으로 변환된다.

이 원리를 활용해서 N을 입력받고 0부터 순서대로 B^(len(N) - 1)까지 곱해지는 것에 대해 for문으로 작성하였다.

 

N, B = input().split()

N = N[::-1]
B = int(B)

table = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"

result = 0

for i in range(len(N)):
    result += table.index(N[i]) * (B ** i)

print(result)