문제
https://www.acmicpc.net/problem/2231
풀이
- 브루트포스 알고리즘
1부터 시작해서 n까지의 분해합을 모두 구해서 n과 처음 같아질 때, 그 때가 가장 작은 생성자가 된다.
처음 문제를 풀 때, 반복문의 범위를 range(1, n)까지했더니 반례 1에서 걸려 오답처리가 됐다.
입력값이 한 자리 수 일때까지 생각해서 풀어야 한다.
코드
n = int(input())
for i in range(1,n+1):
arr = list(map(int, str(i)))
if sum(arr) + i == n:
print(i)
break
if i == (n):
print(0)
break
'코딩테스트 > BOJ' 카테고리의 다른 글
[백준/파이썬] 10816번: 숫자 카드 2 (Python) (0) | 2021.06.23 |
---|---|
[백준/파이썬] 11650번: 좌표 정렬하기 (Python) (0) | 2021.06.23 |
[백준/파이썬] 10814번: 나이순 정렬 (Python) (0) | 2021.06.23 |
[백준/파이썬] 1373번: 2진수 8진수 (Python) (0) | 2021.06.20 |