본문 바로가기
알고리즘 풀이

[알고리즘, 정보] int를 각 자리수로 나누어 list 만들기

by 째깍단 2023. 8. 5.

알고리즘을 풀다보면 자연수 integer를 각 자리 수로 나누어 사용해야하는 경우가 있다

 

이 경우 보통 array형식으로 만들어 활용하는데,

자연수를 list로 만드는 3가지 방법이 있다.

 

 

아래 글에서 number = 123 으로 전제한다

 

 

 

1. 문자열로 바꾸어 append

 

a = []
for i in str(number):
    a.append(i) # a = ['1', '2', '3']  문자열

 

number를 문자열로 만들어 for문으로 각 자리수를 분리한 다음

list에 append하는 형식을 취한다.

 

이때 결과는 가장 큰 수가 앞, 1의 자리수가 뒤에 들어간 문자열 배열을 출력한다

 

 

 

 

2. while과 % // 연산자

 

a = []
while(number!=0): # 123 12 1
    a.append(number%10)
    number = number//10
    # a = [3, 2, 1]  자연수

 

while문은 해당 조건이 만족될때까지 반복해서 계산하므로, 조건을 0이 아닐때로 준다

그리고 10으로 나눈 나머지(=1의 자리수)를 list에 append

계산 후에는 number를 10으로 나누어 몫만 취하여 반복한다

 

결과물은 1의 자리부터 정수로 들어간 배열을 출력한다

 

 

 

 

3. map() 활용

 

a = list(map(int, str(number))
# a = [1, 2, 3]  자연수

 

map에 문자열로 만든 number를 넣어 자리수마다를 쪼개고, 바로 int로 만들어 list에 담는다

 

결과물은 자리 순서대로의 자연수를 담은 배열을 출력한다

 

 

 

map() 함수 https://docs.python.org/3/library/functions.html#map