반응형
문자열로 변환하여 분리
num = 1234
arr = []
for i in str(num):
arr.append(i)
>> ['1','2','3','4']
파이썬에서 문자열은 각 자리를 분리할 수 있다. 특히 for 문을 이용한다면 각 문자를 분리하기가 더 용이해진다.
sum으로 바로 더해주기
num = 1234
sum([int(i) for i in str(num)])
위의 코드를 이용하여 각 자릿수를 바로 더할 수도 있다.
10으로 나누어 분리하기
num = 1234
arr = []
while(num >0):
arr.append(num%10)
num //= 10
>> [4, 3, 2, 1]
가장 고전적인 방법이다. 아마 대부분의 컴공 학생들이 자릿수를 분리할 때 처음에 이렇게 배웠을 것이라고 생각한다. 이 방법은 수를 10씩 나누면서 나머지를 list에 저장하는 방법이다. 나머지를 저장하는 만큼, 가장 작은 1의 자리 수부터 나누어지기 때문에 list에는 거꾸로 저장된다는 점이 있다.
map으로 분리하여 각 자리 수를 더하기
num = 1234
sum(map(int, str(num)))
num에 str()를 씌워주지 않으면 오류가 뜬다.
map(function, iterable1, iterable2, ..)
map의 원형이 이렇기 때문에 str(num)으로 각 자리를 구분해주고, int로 각 자리를 모두 바꾸어 sum하는 방식으로 계산한다.
반응형
'코딩테스트 대비 > Python 문법' 카테고리의 다른 글
| [Python] defaultdict 사용법 (0) | 2023.07.08 |
|---|---|
| [Python] enumerate 사용법 (0) | 2023.07.08 |
| [Python] 람다 표현식 사용하기 (0) | 2023.06.23 |
| [Python] 파이썬 타입 힌트 / 힌팅 / 어노테이션 (0) | 2023.06.22 |
| [Python] 리스트에 숫자 추가할 때 주의사항 (0) | 2023.06.20 |