Post

파이썬 자리수 별로 더하기


title: [파이썬] 자리수 별로 더하기 date: 2022-11-26 12:04:42.134 +0000 categories: [python] tags: [‘백준’] description: 문제 : https://www.acmicpc.net/problem/4673알고리즘 문제를 풀던 중 자리수 별로 더하기를 반복해야하는 문제가 있었다.527 -> 527 + 5 + 2 + 7 = 541이걸 어떻게 풀어야하나… 고민하다가 다음과 같은 방법으로 코 —

문제 : https://www.acmicpc.net/problem/4673 알고리즘 문제를 풀던 중 자리수 별로 더하기를 반복해야하는 문제가 있었다.

527 -> 527 + 5 + 2 + 7 = 541

이걸 어떻게 풀어야하나… 고민하다가 다음과 같은 방법으로 코드를 작성했다.

1
2
3
4
ans = n
while (n > 0):
    ans += n % 10
    n = n // 10

분명 보다 좋은 방법이 있을텐데…

이렇게 비효율적인 각종 코드를 조합한 결과 제한시간 1초짜리 문제에서 4356ms라는 경이로운 기록을 달성했다. (근데 맞았다 함ㅋㅋㅋ)

다른 사람은 어떻게 풀었나 참고했더니

1
2
for n in str(num):
	num += int(n)

예를들어 527을 string으로 형변환하고, 이를 for문에 넣어 돌리면 n = ["5", "2", "7"]과 같은데, 이를 int로 다시 형변환하여 더해준 것이다!

세상에 이런 방법이… 문자열을 for문에 넣는 방법은 상상도 못했었다.

앞으로 문자열 형변환을 통해 풀 수 있는 문제인지 염두에 두어야겠다.

This post is licensed under CC BY 4.0 by the author.