파이썬 알고리즘 - 정수의 각 자리수& 합 구하기

안녕하세요 jay입니다.
오늘은 파이썬 정수의 자리수와
각 자리수의 합을 구하는 법에 대해 알아보겠습니다.


1. 정수의 자리수 구하기

정수의 자리수를 구하는 방법은 2가지가 있습니다.
1. 정수를 문자열로 변환해서 각각의 자리수를 구한다.
2. 나머지 연산자(%) 몫 연산자(//)를 통해 구한다.
먼저 1번으로 풀어보겠습니다.

1) 정수를 문자열로 변환해서 자리수 구하기(list comprehension, map)

# 정수의 자리수 구하기(list comprehension)
x = 1457
a = [int(i) for i in str(x)]
print(a) #[1,4,5,7]

# map으로 정수 자리수 구하기
a = 1432
b = list(map(int,str(a)))
print(b) # [1, 4, 3, 2]

정수형을 문자열형으로 바꾼 뒤 각각의 자리를 정수로 바꿔서 출력을 했습니다.


2) 나머지 연산자(%와 몫 연산자(//)를 통해 구하기

# evaluate digit using only integer

x = 1234
b = []

while x:
    b.insert(0,x%10)
    x//=10
    
print(b) #[1,2,3,4]

x가 0이 될때까지, 반복문이 돌아갑니다.
빈 리스트 b에  x의 나머지 연산 후 나머지값이 들어가고,
x를 다시 몫 연산자로 값을 줄여나갑니다.

2. 정수 자리수 합 구하기

합 같은 경우 위의 리스트들에 대한 합을 구하시면 됩니다.
이번엔 다른 방식으로 합을 구하는 법을 보여 드리겠습니다.


# 자리수 합
a = 1234
sum = 0

while a: 
    sum += (a%10)
    a//=10
    
print(sum) # 12

나머지 연산후 sum에 += 연산자를 이용하여 합을 구하는 알고리즘입니다.
이러면 굳이 리스트 item들의 합을 구하지 않아도 됩니다.

댓글