[Python-CodingTest] 2-6. 자릿수의 합
자릿수의 합
문제 정리
입력
7 // n
137 460 603 40 521 128 125 // n개의 자연수
처리 과정
- 각 자리수를 더하는 digit_sum() 작성
- lst의 요소를 digit_sum()의 인자로 전달하면서 반환값 누적
- tot의 max 구하기
- lst의 요소들 중 digit_sum()한 값이 max와 같다면 출력
출력
137 128
풀이
import sys
sys.stdin = open("./input/in6.txt", "rt")
n = int(input())
lst = list(map(int, input().split()))
## 방법 1: 10으로 나눈 몫과 나머지 구분
# def digit_sum(x):
# sum=0
# while x>0:
# sum += x%10
# x = x//10 # x를 10으로 나눈 몫
# return sum
## 방법 2: x를 스트링 처리한 뒤에 한글자씩 int 변환
def digit_sum(x):
sum=0
for i in str(x): # x를 스트링 처리
sum+=int(i)
return sum
max=0
# 아래 for문과 같은 코드!
# for i in range(n):
# if(max<digit_sum(lst[i])):
# max = digit_sum(lst[i])
for x in lst:
if max<digit_sum(x):
max = digit_sum(x)
for x in lst:
if max==digit_sum(x):
print(x, end=' ')
정리
- x를 10으로 나눈 몫:
x//10
- digit_sum()을 작성할 때, x를 스트링 처리 한 뒤에 다시 int로 바꾸어 누적할 수 있음! 아이디어🌟
for x in lst:
: x는 lst의 값을 순회
💛 개인 공부 기록용 블로그입니다. 👻