728x90
[백준알고리즘] 11576번: Base Conversion -Python
https://www.acmicpc.net/problem/11576
A진법의 수를 m자리만큼 입력받아 B진법의 수로 표현하는 문제이다. 이 문제를 처리하기 위해서 < A진법 -> 10진법 -> B진법 > 순서대로 변환을 해줄 것이다.
A진법을 우선 10진수로 바꾸기 위해서 입력받은 수에 연산을 해준다. 1의 자리부터 순서대로 A^0, A^1, A^2... 값들을 각 자리의 수와 곱한 합을 구해주면 된다.
이 수를 B진법으로 바꾸기 위해서는 10진법으로 변환한 수를 B로 계속 나누며 나눈 나머지만 계속 구하면 된다.
import sys
input = sys.stdin.readline
A, B = map(int, input().split())
m = input()
before = list(map(int, input().split()))
total = 0
power = 0
for b in before[::-1]:
total += (b * (A ** power))
power += 1
after = []
while total:
after.append(str(total % B))
total //= B
sys.stdout.write(' '.join(after[::-1]))
잘못된 점이나 부족한 점 지적해주시면 감사하겠습니다
728x90
'algorithm > 백준알고리즘' 카테고리의 다른 글
[백준알고리즘] 6588번: 골드바흐의 추측 -Python (0) | 2020.02.21 |
---|---|
[백준알고리즘] 1978번: 소수 찾기 -Python, C++ (0) | 2020.02.21 |
[백준알고리즘] 2089번: -2진수 -Python (0) | 2020.02.21 |
[백준알고리즘] 11005번: 진법 변환 2 -Python (0) | 2020.02.18 |
[백준알고리즘] 2745번: 진법 변환 -Python (0) | 2020.02.18 |