728x90
<문제 설명>
https://www.acmicpc.net/problem/2745
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
반응형
'알고리즘' 카테고리의 다른 글
[프로그래머스 lv 1] 완주하지 못한 선수.java (0) | 2022.03.15 |
---|---|
[자료구조] 해시(Hash) (0) | 2022.03.10 |
[백준 브론즈3] 팩토리얼 진법.py (0) | 2022.03.07 |
[프로그래머스 lv 1] [1차] 비밀지도.py (0) | 2022.03.04 |
[자료구조] 진법변환, 비트연산 (0) | 2022.03.03 |