알고리즘
[백준 브론즈2] 진법 변환.py
파뱁
2022. 3. 9. 23:30
728x90
<문제 설명>
https://www.acmicpc.net/problem/2745
2745번: 진법 변환
B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를
www.acmicpc.net
B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하면 되는 문제 이다.
입출력의 예는 다음과 같다.
예제 입력 1
ZZZZZ 36
예제 출력 1
60466175
<문제 풀이 아이디어>
진법의 수가 1234, B진법의 B가 3으로 주어졌다고 가정할때 이 수를 10진법으로 바꾸는 법은
1*3^3+2*3^2+3*3^1+4*3^0 이다 이를 일반화해서 계산하도록 만들면 된다.
다만 알파벳 대문자는 A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35 이런식으로 수를 나타내기 때문에 이를 반영하여 풀이를 진행할 것이다.
<문제 풀이 코드>
import sys
line = sys.stdin.readline().split()
target = line[0]
b = int(line[1])
answer = 0
for i in range(len(target)):
if target[i].isdecimal()==False:
answer += (ord(target[i])-55)*b**(len(target)-1-i)
else:
answer += int(target[i])*b**(len(target)-1-i)
print(answer)
728x90
반응형