알고리즘/[python] 백준 BOJ
[Python] 백준 2745 진법 변환
Alan_Kim
2022. 12. 21. 12:38
728x90
반응형
https://www.acmicpc.net/problem/2745
2745번: 진법 변환
B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를
www.acmicpc.net
문제 해결
- B 진법을 10진법으로 바꾸는 과정은 간단하다. (중고등학교때 많이 배운다.)
※예시
$102_{13} = 1 \times 13^2 + 0 \times 13 + 2 \times 13^0 = 169+2 = 171 $
- 따라서 위아 같은 식의 전개가 나오도록 코드를 작성하면 된다.
CODE
import sys
input = sys.stdin.readline
n, b = input().split()
b= int(b)
ans = 0
for i in range(len(n)):
if n[i].isalpha():
ans += (ord(n[i])-ord('A')+10)*pow(b,len(n)-(i+1))
else:
ans += int(n[i])*pow(b,len(n)-i-1)
print(ans)
728x90
반응형