n진법으로 표기된 string을 10진법 숫자로 변환하기 - int함수

프로그래머스라는 사이트의 “파이썬을 파이썬답게”라는 강의를 보면서 문제를 풀고있다. n진법으로 표기된 string을 10진법 숫자로 변환하기 문제인데

입력에서 12 3 => 5

444 5 => 124

이렇게 표시되어야 한다.

그래서 나는 이런식으로 구현해봤다.

num, base = map(int, input().strip().split(' '))
result = 0
for i in range(len(str(num))):                  //num을 문자열로 변환
    result += int(str(num)[-1-i])*(base**i)     //인덱스를 [-1-i] 하여 맨뒤부터 시작하게 하고, 멱승을 이용해 계산해주고, result에 더해준다.
print(result)

이건 사이트에 있는 코드

num = '3212'
base = 5

answer = 0
for idx, i in enumerate(num[::-1]):
    answer += int(i) * ( base ** idx )

이런식으로 했는데.. 파이썬에서는 훨씬 쉬운 방법이 있다.

num=444
base=5
answer = int(num,base)

=> 124

확실히 강좌명처럼 파이썬을 파이썬답게 쓰는 방법이 있는 것을 느꼈고, 이를 잘 활용해서 시간 절약을 할 수 있도록 해야겠다. 그래도 동작과정을 이해하는 것 또한 중요하다고 생각하니 한 번씩은 생각해보는것도 좋을 듯 하다.