[알각코] 인프런 2-6 자릿수의 합

자릿수의 합

문제 정보는 인프런의 파이썬 알고리즘 문제풀이 코딩테스트에 있습니다!

문제풀이

내가 푼 문제

n = int(input())
a = list(map(int, input().split()))
lg = 8
s = 0
max = 0
res = 0
for idx, el in enumerate(a):
  for i in reversed(range(1, 9)):
    s += el // 10**i
    el = el-((el//10**i)*10**i)
    if (s > max):
      max = s
      s = 0
      # 기존 el 값 기억해야하는 코드 추가 삽입
      res = a[idx]

풀다보니 맨 마지막에 해당 기존 숫자를 출력해야한다는 것을 앎..

해당 숫자까지 기억하는 코드까지 짜야 답 구할 수 있따

++ digit_sum(x)라는 함수를 구현해야하는 것이 필수 조건이당..

n = int(input())
a = list(map(int, input().split()))

def digit_sum(x):
  sum = 0
  while x > 0:
    # x를 10으로 나눈 나머지
    sum += x % 10
    # x를 10으로 나눈 몫
    x = x // 10
  return sum
  # string을 활용하여 만든 함수
  # 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)

while에서 나머지, 몫만으로 각 자리수 합 함수를 쉽게 만들 수 있다.