2231. 분해합 - 파이썬

HS·2024년 10월 1일

오답

n = str(input()) #분해합. M+M[0]+M[1]~
m = 0
ans = []

for i in range(10**(len(n)-1), int(n)):
    cur = i
    for j in range(len(n)):
        cur += int(str(i)[j])
    if cur == int(n):
        ans.append(i)
print(min(ans))

N이 작은 경우 음수가 나와 오류발생
range를 자리수*9를 최소로 하여 범위를 줄임

정답

n = int(input())
ans = 0
for i in range(max(1,n-9*(len(str(n)))), n):
    if i +sum(map(int,str(i))) == n:
        ans = i
        break

print(ans)
profile
공부하면서 알게 된 여러가지 지식을 아카이빙합니다

0개의 댓글