BOJ 2745 진법 변환
https://www.acmicpc.net/problem/2745
시간 1초, 메모리 128MB
input :
- N B(2 ≤ B ≤ 36)
output :
- B진법 수 N을 10진법으로 출력
조건 :
- A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35
알파벳이 들어온 경우엔 ord(item) - 55 를 실행하자.
진법의 변환의 경우
2진수 일 때
2^3 2^2 2^1 2^0
8진수 일 때
8^3 8^2 8^1 8^0
B 즉 몇 진법인지에 따라 제곱을 하는 형식으로 커지게 된다.
그렇다면 ZZZZZ를 받았을 때.
36^4 36^3 36^2 36^1 36^0
으로 가게 되니까 숫자에다가 저걸 곱해주면 되는 것.
import sys
n, b = sys.stdin.readline().split()
b = int(b)
res = 0
for idx, item in enumerate(n):
try:
if int(item):
res += int(item) * b ** (len(n) - 1 - idx)
except:
res += (ord(item) - 55) * b ** (len(n) - 1 - idx)
print(res)
Author And Source
이 문제에 관하여(BOJ 2745 진법 변환), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jsin2475/BOJ-2745-진법-변환저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)