https://www.acmicpc.net/problem/
문제
주어진 정수 둘 중 앞 정수를 뒷 정수의 진법으로 바꾸어 출력하는 문제이다.
주어진 정수들은 모두 10 진수이고, 변환해야 하는 진법은 2 진법 이상, 16 진법 이하이다.
풀이
최대 16 진법까지 가능하고, 10은 A, 11은 B, 12는 C, 13은 D, 14는 E, 15는 F를 사용하기 때문에 미리 리스트를 만들어서 사용하면 좋다.
주어진 정수를 주어진 진수로 나눠주고 나머지를 변환하고 정답 리스트에 추가한다. 반복하여 주어진 정수를 변환하는 것이 끝난다면 join 을 사용하여 변환된 정수 리스트를 문자열로 출력한다.
가장 처음 주어진 변환해야 하는 정수가 0 이라면 진수와 상관없이 0 을 출력하면 되므로 예외처리 해준다.
코드
decimal, target = map(int, input().split())
literation = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F']
if decimal == 0:
print(0)
else:
ans = []
while decimal > 0:
ans.append(literation[decimal % target])
decimal = decimal // target
print(''.join(reversed(ans)))
'Online Judge > Baekjoon' 카테고리의 다른 글
[Baekjoon 18870] 좌표 압축 | Python (0) | 2024.08.31 |
---|---|
[Baekjoon 21920] 서로소 평균 | Python (0) | 2024.08.30 |
[Baekjoon 31713] 행운을 빌어요 | Python (0) | 2024.08.30 |
[Baekjoon 31263] 대한민국을 지키는 가장 긴 힘 | Python (0) | 2024.08.30 |
[Baekjoon 26264] 빅데이터? 정보보호! | Python (0) | 2024.08.30 |