코딩테스트 준비/백준

[백준] 2745번 진법 변환 - 파이썬(Python)

youjin86 2021. 8. 31. 02:04

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

 

2745번: 진법 변환

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

www.acmicpc.net

 

문제

 

접근법

 

1. 입력받은 N의 끝부분부터 역으로 출력

2. 해당 부분이 숫자인지 문자인지 확인

3. 숫자는 int형으로 변환, 문자는 아스키코드 변환 후 A=10이 나오게 숫자 조정

(A의 아스키 코드는 65, 문제에서 A는 10을 필요로 하므로 55를 빼기)

4. 진법변환 공식을 통해 순차적으로 제곱하며 곱해주고 ans에 더하기

 

 

코드

N,B=input().split()
B=int(B)
ans=0

for i in range(len(N)-1,-1,-1):
    
    if '0'<=N[i] and N[i]<='9':
        _=int(N[i])
    else:
        _=ord(N[i])-55

    ans+=B**(len(N)-1-i)*_

print(ans)