10진수로 변경하는 방법을 알고있으면 된다.
# 진법 변환
nums = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
n, b = input().split()
n = n[::-1] # 역순으로 만들기
b = int(b)
# b진법 -> 10진법
# res = b의0제곱 * n[0] + b1 * n[1] ...
# res += bi * n[i]
res = 0
for i in range(len(n)):
res += (int(b) ** i) * (nums.index(n[i]))
print(res)
[핵심 코드]
res += (int(b) ** i) * (nums.index(n[i]))
그런데 파이썬은 int()함수를 이용하면 10진법으로 바꿀 수 있다!!
int(변환할str, n진법(int))
이를 이용해서 다시 풀어보면
n, b = input().split()
print(int(n, int(b)))
'백준 - 파이썬 > 단계별 - 8 (일반 수학 1)' 카테고리의 다른 글
*[백준/파이썬] 1193번 분수찾기 (0) | 2025.05.15 |
---|---|
[백준/파이썬] 2292번 벌집 (0) | 2025.05.15 |
*[백준/파이썬] 2903번 중앙 이동 알고리즘 (0) | 2025.05.13 |
[백준/파이썬] 2720번 세탁소 사장 동혁 (0) | 2025.05.13 |
[백준/파이썬] 11005번 진법 변환 2 (0) | 2025.05.13 |