250x250
728x90
1. 문제 - 11576번

2. 접근법
특정 진법이 먼저 주어지지 않고, 임의의 진법들이 주어졌을 때 상호 변환이 가능한 코드를 작성하는 문제다.
변환 전인 A진법의 각 숫자는 0으로 시작하는 경우가 없다고 했으므로, 이번 경우에는 0에 대한 처리는 생각하지 않아도 괜찮다.진법 간 변환을 쉽게 해주기 위해, A진수를 우선 10진수로 변환해준 뒤, 10진수를 나머지 원리를 이용해 B진수로 바꿔주는 코드를 작성했다.2초라는 제한 시간이 있으므로 빠른 속도를 위해 input 대신 sys 모듈을 사용해 표준입력값을 받았으며, append 메서드가 아닌 insert메서드를 사용해 출력 값을 첫 인덱스부터 삽입해주어 출력시 reversed등으로 뒤집을 필요가 없도록 했다.
<정답 코드>
import sys
input = sys.stdin.readline
def a_dec_b(a, b, m, n):
dec = 0
for i in range(m):
dec += n[i]*(a**i)
total = []
while dec != 0:
r = dec%b
dec //= b
total.insert(0, r)
return total
a, b = map(int, input().split())
m = int(input())
n = list(map(int, input().split()))[::-1]
print(*a_dec_b(a,b,m,n))
728x90
'Data Science > PS (Python)' 카테고리의 다른 글
[백준 Python] - 1929 소수 구하기 '에라토스테네스의 체' (0) | 2024.04.07 |
---|---|
[백준 Python] - '1978 소수 찾기' 쉽게 풀기! (0) | 2024.04.07 |
[백준 Python] - 2089 -2진수 변환 (0) | 2024.04.06 |
[백준 Python] - 1212 8진수 2진수 변환 (0) | 2024.04.06 |
[백준 Python] - 1373 2진수 8진수 변환 (0) | 2024.04.05 |