자릿수의 ν•©

πŸ“„ 문제

N개의 μžμ—°μˆ˜κ°€ μž…λ ₯되면 각 μžμ—°μˆ˜μ˜ 자릿수의 합을 κ΅¬ν•˜κ³ ,
κ·Έ 합이 μ΅œλŒ€μΈ μžμ—°μˆ˜λ₯Ό 좜λ ₯ ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ„Έμš”.
각 μžμ—°μˆ˜μ˜ 자릿수의 합을 κ΅¬ν•˜λŠ” ν•¨μˆ˜λ₯Ό def digit_sum(x)λ₯Ό κΌ­ μž‘μ„±ν•΄μ„œ ν”„λ‘œκ·Έλž˜λ° ν•˜μ„Έμš”.

β–£ μž…λ ₯μ„€λͺ…
첫 쀄에 μžμ—°μˆ˜μ˜ 개수 N(3<=N<=100)이 주어지고,
κ·Έ λ‹€μŒ 쀄에 N개의 μžμ—°μˆ˜κ°€ 주어진닀.
각 μžμ—°μˆ˜μ˜ ν¬κΈ°λŠ” 10,000,000λ₯Ό λ„˜μ§€ μ•ŠλŠ”λ‹€.

β–£ 좜λ ₯μ„€λͺ…
자릿수의 합이 μ΅œλŒ€μΈ μžμ—°μˆ˜λ₯Ό 좜λ ₯ν•œλ‹€.
자릿수의 합이 같을 경우 μž…λ ₯순으둜 먼저인 숫자 λ₯Ό 좜λ ₯ν•©λ‹ˆλ‹€.

β–£ μž…λ ₯예제
3
125 15232 97

β–£ 좜λ ₯예제
97

🧞 풀이

더보기

풀이

# μž…λ ₯: n개 μžμ—°μˆ˜
# 좜λ ₯: 합이 μ΅œλŒ€μΈ μžμ—°μˆ˜

sum_x = []                                       # 합을 담을 빈 리슀트 sum_x ν• λ‹Ή

def digit_sum(x):                                # ν•¨μˆ˜ digit_sum μ •μ˜
    for i in x:                                  # x에 i μš”μ†Œ 반볡
        sum_x.append(sum(map(int, str(i))))      # iλ₯Ό λ¬Έμžμ—΄ λ³€ν™˜ν•˜μ—¬ 각 자릿수λ₯Ό λ‚˜λˆˆ λ’€ 합을 ꡬ해 sum_x에 μΆ”κ°€
    print(num_list[sum_x.index(max(sum_x))])     # 합이 μ΅œλŒ“κ°’μ΄ λ˜λŠ” sum_x의 indexλ₯Ό ꡬ해, num_listμ—μ„œ ν•΄λ‹Ή index κ°’ 좜λ ₯

n = int(input())                                 # μ •μˆ˜ n ν• λ‹Ή
num_list = list(map(int, input().split()))       # num_list에 각 μžμ—°μˆ˜ ν• λ‹Ή
digit_sum(num_list)                              # ν•¨μˆ˜ digit_sum μ‹€ν–‰

 

λ‹€λ₯Έ μ‚¬λžŒ ν’€μ΄ 1

# 자릿수의 ν•©

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)

 

λ‹€λ₯Έ μ‚¬λžŒ ν’€μ΄ 2

# 자릿수의 ν•©

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)

+ Recent posts