알고리즘 입문 수업을 듣고 중요한 내용을 정리했습니다.
개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다.
문제
[자릿수의 합]
N개의 자연수가 입력되면 각 자연수의 자릿수의 합을 구하고, 그 합이 최대인 자연수를 출력하는 프로그램을 작성하시오.
(단, 각 자연수의 자릿수 합을 구하는 함수 def digit_sum(x)을 사용해서 프로그램을 작성할 것)
*입력 설명
첫 번째 줄에는 자연수의 개수 N(3 ≤ N ≤ 100)이 주어진다.
두 번째 줄에는 N개의 자연수가 주어진다.
단, 각 자연수의 크기는 10,000,000을 넘지 않는다.
*출력 설명
첫 번째 줄에 자리수의 합이 최대인 자연수를 출력한다.
단, 자리수의 합이 같을 경우에는 먼저 입력된 숫자를 출력한다.
풀이(Python)
답안(1)
import sys
sys.stdin = open('AA/input_6.txt', 'rt')
n = int(input())
a = list(map(int, input().split()))
def digit_sum(x):
sum = 0
while x > 0:
sum += x % 10
x = x // 10
return sum
max = -2147000000
for x in a:
tot = digit_sum(x)
if tot > max:
max = tot
res = x
print(res)
# 출력 : 97
답안(2)
import sys
sys.stdin = open('AA/input_6.txt', 'rt')
n = int(input())
a = list(map(int, input().split()))
def digit_sum(x):
sum = 0
for i in str(x):
sum += int(i)
return sum
max = -2147000000
for x in a:
tot = digit_sum(x)
if tot > max:
max = tot
res = x
print(res)
# 출력 : 97
input_6.txt(입력)
3
125 15232 97
중요내용
답안(2)의 for i in str(x): 코드에서 str() 함수는 인자 x에 들어온 숫자를 각 자리의 숫자로 문자열 형변환하여 하나씩 반환한다. (ex. x=125이면, i는 문자열 1, 2, 5로 반환됨)
'알고리즘' 카테고리의 다른 글
Algorithm - 뒤집은 소수 (0) | 2021.11.02 |
---|---|
Algorithm - 소수의 개수(에라토스테네스 체) (0) | 2021.11.02 |
Algorithm - 정다면체 (0) | 2021.11.02 |
Algorithm - 대표값 (0) | 2021.11.01 |
Algorithm - 최소값 구하기 (0) | 2021.10.29 |
댓글