Algorithms

파이썬 - 문자열 리스트를 정수로 변환

galong 2025. 4. 10. 03:42

알고리즘 문제를 풀다가 막힌 부분이 있어 정리하려고 한다!

1. 정수를 리스트에 담기

118372라는 정수를 배열에 한자리씩 담으려고 한다.

이때 list()와 map()를 사용한다.

중요한 것은 str() 문자열로 변경한 뒤에 map으로 감싸줘야한다!

이유는 map함수가 반복 가능한(iterable) 객체를 두 번째 인자에 필요로 하는데, n은 정수이기 때문에 str문자열로 변경해줘야한다.

 

list(map(int, str(n))

n = 118372

n_list = list(map(int, str(n)) # [1, 1, 8, 3, 7, 2]

 

2.  정수가 담긴 리스트를 하나의 정수로 표현하기

정수가 담긴 리스트 [1, 1, 8, 3, 7, 2]를 118372로 표현하는 방법

처음에는 하나씩 빼서 str()로 바꿔서 합치고 최종적으로 int()로 바꿨다..

n_list = [1, 1, 8, 3, 7, 2]
n = ''
for num in a:
    n += str(num)

n = int(n) # 118372

이러면 코드가 너무 길어지고, 깔끔하지 않다.

더 좋은 방법이 있다!

바로, join 함수를 사용하는 것.

join 함수는 문자열 메서드로, 리스트의 모든 요소를 하나의 문자열로 연결한다.

 

1)현재 정수만 담긴 n_list를 먼저 문자열로 담긴 리스트로 바꿔줘야한다. map(str, n_list) 사용

2) 그리고 문자열로 담긴 리스트를 빈 값 ""에 join하여 하나의 문자열로 연결한다.

n_list = [1, 1, 8, 3, 7, 2]

n = int("".join(map(str,n_list))) # 118372

 

join 함수.. 잊지 않겟서