문제
10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오.
10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다.
A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35
조건 및 입출력
- 첫째 줄에 N과 B가 주어진다. (2 ≤ B ≤ 36) N은 10억보다 작거나 같은 자연수이다.
- 첫째 줄에 10진법 수 N을 B진법으로 출력한다.
- 시간 제한: 0.5초 이내 / 메모리 제한: 256MB
코드 (Python 3)
trans_list=[];
num,trans=map(int,input().split());
while(num>0):
trans_list.append(num%trans);
num//=trans;
trans_list=trans_list[::-1];
for i in trans_list:
if(i<10): #10보다 작은 경우, 그 수를 출력
print(i,end='');
else: #10보다 큰 경우, ASCII CODE에 따라 출력
print(chr(65+i-10),end='');
여담
오랜만에 Python으로 문제를 풀었다.
Python으로 문제를 푸니, 코드가 정말 짧게 끝이 난다.
| 코드가 이상하거나 이해되지 않는 부분이 있다면 댓글 남겨주세요! + 더 좋은 풀이 방법이 있다면 알려주세요 :) |
'Programming > Python' 카테고리의 다른 글
| [백준] 7785번 : 회사에 있는 사람 (Python / 파이썬) (0) | 2023.08.07 |
|---|---|
| [백준] 2798번 : 블랙잭 (Python / 파이썬) (0) | 2023.08.06 |
| [백준] 13706번 : 제곱근 (Python / 파이썬) (0) | 2023.07.28 |
| [백준] 9023번 : 단어 뒤집기 (Python / 파이썬) (0) | 2023.07.14 |
| [백준] 6603번 : 로또 (Python / 파이썬) (0) | 2023.07.11 |