◆ 글을 읽기 전에 먼저 이 문제를 풀어보자.
더보기
문제
베이스 밑이 10인 숫자를 십진수로 출력합니다.
기입
입력으로 공백으로 구분된 두 개의 숫자가 표시됩니다.
첫 번째 숫자는 num을 나타내고 두 번째 숫자는 base를 나타냅니다.
누르다
10진법으로 num을 10진수로 출력합니다.
제한
- 밑은 10보다 작거나 같은 자연수입니다.
- num은 3000보다 작거나 같은 자연수입니다.
I/O 예시
입출력
| 12 3 | 5 |
| 444 5 | 124 |
I/O 예시 설명
입출력 예제 1
12의 3진법은 5의 10진법입니다. (1*3 + 2)
입출력 예제 2
444에서 5진법은 124에서 10진법입니다. (4*5*5 + 4*5 + 4)
나는 처음에 이 문제를 이렇게 해결했다.
num, base = map(int, input().strip().split(' '))
answer = 0
for idx,s in enumerate(str(num)(::-1)):
answer += (base ** idx) * int(s)
print(answer)
보통 사람들은 이와 같은 for 문으로 숫자를 곱하여 문제를 해결할 것입니다.
그런데 파이썬에는 10진수 문자열을 10진법으로 변환하는 함수가 있습니다!
기저변환 문제는 알고리즘 문제나 Kote 문제를 풀 때 필요한 과정이 될 수 있으니 알아두세요!
파이썬 정수(x, 기준=10) 이 함수는 기본 변환을 지원합니다.
이 기본 기능을 잘 활용하면 짧은 코드를 작성하고 시간을 절약할 수 있다!?
(전) 11진법으로 쓰여진 문자열 “3A12″를 10진법으로 변환
num = '3A12'
base = 11
answer = int(num, base) # 5216
