[코딩테스트] 자릿수의 합

LeeEunJae·2022년 10월 9일
0

코딩테스트

목록 보기
4/4

📖 문제

📌 Solution

digit_sum(x) 함수에서 x 를 String 으로 변환시켜 for 문을 통해 자연수의 각 자릿수에 접근하고, 누적 변수에 더할 때 다시 int 형으로 변환 시킨 후 더해주면 된다.

import sys
sys.stdin = open("input.txt","rt")

def digit_sum(x):
    sum = 0
    for i in str(x):
        sum += int(i)
    return sum

n = int(input())
numbers = list(map(int, input().split()))
result = []

for i in numbers:
    result.append(digit_sum(i))

result_max = max(result)
for idx, value in enumerate(result):
    if(result_max == value):
        print(numbers[idx])
        break

입력은 input.txt 파일로 받았다.
numbers를 리스트로 한번에 입력받고, result 라는 빈 리스트를 생성한다.
for 문으로 numbers 리스트 원소들을 하나씩 접근해서 digit_sum(i) 로 함수를 호출 하고, 함수 리턴값을 result 리스트에 저장한다.

max(result) 로 result 리스트의 최댓값을 구한다.(자릿수의 합 중 최댓값)
enumerate 로 result 를 인덱스(idx)와 값(value)에 모두 접근하고, result_max 와 value 가 같으면, numbers[idx] 를 출력한 후 반복문을 중단한다.(자릿수의 합이 최대인 자릿수 출력, 자릿수의 합이 같은 경우 입력순으로 먼저인 숫자 출력)

profile
매일 조금씩이라도 성장하자

0개의 댓글