0%

[백준/2231] 분해합

Baekjoon Online Judge - 2231

Code (Python)

  • 예외처리를 잘못해서 두 번이나 틀린 문제..~ 분해합이 없을 경우의 처리를 해줘야 한다.
  • 어차피 분해합의 생성자는 분해합보다 작다. 고로 입력값(N)까지만 비교하면 됨.
  • 입력값(N)까지 비교했음에도 분해합을 찾지 못하고, i == N이 되면 그냥 0을 출력하면 된다.
  • 문제 이해 잘못해서 슬랙방에 이상한 질문이나 남기고… 아진짜닉변하고싶다…
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
N = int(input())

for i in range(1, N + 1):
hap = 0
number = i
while number != 0:
rest = int(number % 10)
hap += rest
number = int(number/10)
hap += i
if hap == N:
print(i)
break
if i == N:
print(0)

References 1 (출처)

  • 자릿수 하나하나 배열에 넣어서 더함
1
2
3
4
5
6
7
8
9
10
11
12
13
num = int(input())
answer = 0

for i in range(1, num+1):
coef_num_list = list(map(int, str(i)))
answer = i + sum(coef_num_list)

if answer == num:
print(i)
break

if i == num:
print(0)