n진법으로 표기된 string을

◆ 글을 읽기 전에 먼저 이 문제를 풀어보자.

더보기

문제

베이스 밑이 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