본문 바로가기

Python

[Python] [정수 다루기] n진법으로 표기된 string을 10진법 숫자로 변환하기

이 글은 프로그래머스의 파이썬을 파이썬답게 강의를 수강하고 작성하는 글입니다.

 

알고리즘 문제에서 자주 등장하는 진법 변환 문제를 해결할 때 보통 for문을 이용해 숫자를 곱해가며 문제를 해결한다.

num = '3212'
base = 5

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

 

 

하지만 파이썬에서는 파이썬의 int(x, base = 10)함수가 진법 변환을 지원한다.

이 기본적인 함수를 잘 사용하면 코드를 짧게 작성할 수 있고, 또 시간을 절약할 수 있다.

(x에는 문자열만 들어갈 수 있다.)

num = '3212'
base = 5
answer = int(num, base)