반응형
[문제] 자릿수의 합
N개의 자연수가 입력되면 각 자연수의 자릿수의 합을 구하고, 그 합이 최대인 자연수를 출력
하는 프로그램을 작성하세요. 각 자연수의 자릿수의 합을 구하는 함수를 def digit_sum(x)를
꼭 작성해서 프로그래밍 하세요.
입력 설명
첫 줄에 자연수의 개수 N(3<=N<=100)이 주어지고, 그 다음 줄에 N개의 자연수가 주어진다.
각 자연수의 크기는 10,000,000를 넘지 않는다.
출력 설명
자릿수의 합이 최대인 자연수를 출력한다. 자릿수의 합이 같을 경우 입력순으로 먼저인 숫자
를 출력합니다. .
입력예제 1
3
125 15232 97
출력예제 1
97
문제 접근
- 자연수 N개를 입력받고, 다음 줄에 N개의 자연수를 입력받습니다.
- def digit_sum(x) 함수를 작성해서 자연수 x를 % 10 연산으로 한 숫자씩 더해서 tot에 담아준다.
- 자릿수의 합이 최대인 자연수를 출력
- 자릿수의 합이 같을 경우 입력순으로 먼저인 숫자 출력
풀이
나의 코드
- 1행 : digit_sum(x) 함수에서 x의 자연수를 str로 만들어서 result에 복합 연산을 해줬습니다.
def digit_sum(x):
result = 0
for i in str(x):
result += int(i)
return result
N = int(input())
a = list(map(int, input().split()))
max = -2147000000
res = 0
for x in a:
total = digit_sum(x)
if total > max:
max = total
res = x
print(res)
정답 코드
- 1행 : digit_sum(x) 함수에서 while문을 x 가 0보다 클때까지 반복하고, sum에 10으로 나눈 나머지를 덧셈 복합 연산으로 해결해줍니다. x 는 10으로 나눈 몫으로 초기화해줍니다.
def digit_sum(x):
sum = 0
while x > 0:
sum += x % 10
x = x // 10
return sum
n = int(input())
a = list(map(int ,input().split()))
max = -2147000000
answer = 0
for x in a:
total = digit_sum(x)
if total > max:
max = total
answer = x
print(answer)
반응형
'코딩테스트 > Algorithm' 카테고리의 다른 글
[Algorithm][Python] 곶감(모래시계) (1) | 2021.05.20 |
---|---|
[Algorithm][Python] 정다면체 (0) | 2021.05.13 |
[Algorithm][Python] 대표값 (0) | 2021.05.13 |
[Algorithm][Python] K번째 큰 수 (0) | 2021.05.13 |
[Algorithm][Python] K번째 작은수 (0) | 2021.05.13 |
[Algorithm][Python] K번째 약수 (0) | 2021.05.13 |