알고리즘/Python

[백준/Python] 2745번: 진법 변환

_SIHA_ 2022. 2. 8. 17:53

 

📖  문제 링크

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

 

2745번: 진법 변환

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

www.acmicpc.net

 

👩‍💻  문제풀이

 

진법변환2(11005번)문제를 거꾸로하면 된다고 생각했는데, 생각보다 오래걸린 문제이다. 

 

 

이렇게 10진법으로 돌려놓는 방식을 그대로 구현했다. 

 

다만 문자열인지 숫자인지 구분하기위해 isdigit()함수를 사용하였고,

문자열인 경우 55를 빼주어 문제의 조건을 맞추었다. 

 

 

 

  최종 코드

from curses.ascii import isdigit

n, b = input().split()

n = ''.join(n[::-1])
b = int(b)

sum = 0
for i in range(len(n)):
    if n[i].isdigit() :
        sum += int(n[i]) * (b**i)
    else :
        sum += (ord(n[i])-55) * (b**i)  
        
        
print(sum)