본문 바로가기
알고리즘/[python] 백준 BOJ

[Python] 백준 2745 진법 변환

by Alan_Kim 2022. 12. 21.
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
반응형

댓글