문제
코드
My answer
import sys
a,b=map(int,sys.stdin.readline().split())
n=int(input())
num=0
word=list(map(int,sys.stdin.readline().split()))
word.reverse()
for idx,i in enumerate(word):
num+=i*(a**idx)
word=[]
while(num!=0):
r=num%b
word.append(r)
num//=b
for i in reversed(word):
print(i,end=" ")
풀이
이 문제는 문제가 이해하기 어려웠다. 우선 첫 입력에 17 8 이 입력되고 두번째에는 자릿수의 갯수가 입려되고 3번째 줄이 이해가 안갔었는데, 예를 들어 2,16이 입력됐으면 이 수는 17진법숫자이므로 10진수로 바꾸면 2*17+16*1 이므로 50이 되는것이다. 말 그대로 자릿수의 숫자가 2와 16이라는 것이다. 문제를 이해하니 그냥 a진수로 입력된수를 10진수로 바꾸고 10진수를 다시 b진수로 바꾸면 끝이었는데 반드시 맨마지막 출력을 int형으로 해줘야된다. 그냥 문자열로 출력했다가 영문도 모른채 틀림을 반복했다.
728x90
반응형
'코딩테스트 > 백준[Python]' 카테고리의 다른 글
[Python] 백준 #11653- 소인수분해 (0) | 2021.12.07 |
---|---|
[Python] 백준 #1929- 소수 구하기 (0) | 2021.12.07 |
[Python/백준] #2089- [-2진수] (0) | 2021.12.06 |
[Python/백준] #11005- [진법 변환 2] (0) | 2021.12.05 |
[Python/백준] #9613- [GCD 합] (0) | 2021.12.04 |