728x90
[백준알고리즘] 2745번: 진법 변환 -Python
https://www.acmicpc.net/problem/2745
주어진 진법과 수를 10진수로 바꾸는 문제이다.
이번 문제에서는 A~Z를 확인하기 위해서 각 인덱스의 character마다 정수인지 확인하기 위해서 isdigit()을 사용했다. 숫자일 경우 그대로 int()를 씌워서 숫자로 만들었다. A~Z에 해당하는 값은 아스키코드 값에 65~90에 해당하는 값들이기 때문에 10~35의 값을 의미하기 위해서 55를 빼주었다. 이 과정에서 문자를 아스키 값(10진수)으로 바꾸는 ord() 메서드를 사용했다.
반대역할을 사용하는 chr()을 사용한 문제는 11005번 진법 변환 2 이다.
import sys
before, base = sys.stdin.readline().split()
base = int(base)
cnt, res = 0, 0
for c in before[::-1]:
target = int(c) if c.isdigit() else ord(c) - 55
res += (target * (base**cnt))
cnt += 1
sys.stdout.write(str(res))
잘못된 점이나 부족한 점 지적해주시면 감사하겠습니다
728x90
'algorithm > 백준알고리즘' 카테고리의 다른 글
[백준알고리즘] 2089번: -2진수 -Python (0) | 2020.02.21 |
---|---|
[백준알고리즘] 11005번: 진법 변환 2 -Python (0) | 2020.02.18 |
[백준알고리즘] 9613번: GCD 합 -Python (0) | 2020.02.18 |
[백준알고리즘] 1850번: 최대공약수 -Python (0) | 2020.02.18 |
[백준알고리즘] 2609번: 최대공약수와 최소공배수 -Python (0) | 2020.02.18 |