📖 문제 링크
https://www.acmicpc.net/problem/11576
11576번: Base Conversion
타임머신을 개발하는 정이는 오랜 노력 끝에 타임머신을 개발하는데 성공하였다. 미래가 궁금한 정이는 자신이 개발한 타임머신을 이용하여 500년 후의 세계로 여행을 떠나게 되었다. 500년 후의
www.acmicpc.net
👩💻 문제풀이
문제 이해가 안되서 한참을 들여다봤다. 질문도 많은걸 보니 좀 불친절한 문제인듯하다...^^;;
어쨌든 간단히 입력된 값을 설명해보자면 아래와 같다.
첫번째 줄 : A는 17진법, B는 8진법을 사용한다.
두번째 줄 : A진법으로 나타낸 수의 자리수는 2개(ex. 216(17)일때 2와 16이라는 두개의 숫자로 이루어져있다는 말)
세번째 줄 : 자리수를 띄워서 나타냄
자리수가 띄워져 있지 않으면 어려울 수도 있었을텐데, 띄워져서 입력되므로
각 자리수를 10진법으로 돌린 후, B의 진법에 따라 다시 변환해주면 된다.
진법에 따른 변환 방식은 백준 11005, 2745번 문제와 흡사하다. (풀이는 아래 링크에)
[백준/Python] 2745번: 진법 변환
📖 문제 링크 https://www.acmicpc.net/problem/2745 2745번: 진법 변환 B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는
shalog.tistory.com
[백준/python] 11005번 : 진법 변환 2
📖 문제 링크 https://www.acmicpc.net/problem/11005 11005번: 진법 변환 2 10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없
shalog.tistory.com
출력 또한 입력과 마찬가지로 띄어쓰기를 해주면 된다.
✅ 최종 코드
A, B = map(int, input().split())
m = int(input())
arr = list(map(int, input().split()))
sum = 0
result = []
arr.reverse()
sum += arr[0] * 1
for i in range(1, m):
sum += (arr[i] * (A**i))
while sum!=0:
result.append(str(sum%B))
sum = sum//B
result.reverse()
print(' '.join(result))
'알고리즘 > Python' 카테고리의 다른 글
[백준/Python] 1707번: 이분 그래프 (0) | 2022.03.01 |
---|---|
[백준/Python] 11724번: 연결 요소의 개수 (0) | 2022.02.11 |
[백준/Python] 1373번: 2진수 8진수 (파이썬 진법 변환 요약) (0) | 2022.02.08 |
[백준/Python] 2745번: 진법 변환 (0) | 2022.02.08 |
[백준/python] 11005번 : 진법 변환 2 (0) | 2022.02.08 |