티스토리 뷰

Problem

문제링크: www.acmicpc.net/problem/2231
알고리즘 : 브루트포스
입력 - N(1 ≤ N ≤ 1000000)
출력 - 가장 작은 생성자


solution

1부터 N 까지 탐색을 하는 방법도 있지만 N - 9(각 자릿수가 가질수 있는 최댓값) * 자릿수 부터 N 까지만 조사하는 방법이 더욱 빠르다.

N = int(input())
start = max(N - (len(str(N)) * 9), 0)
result = 0
for i in range(start, N+1):
    case = i + sum(list(map(int, str(i))))
    if case == N:
        result = i
        break
print(result)

 

'algorithm > 백준' 카테고리의 다른 글

[python] 백준 11726번: 2*n 타일링  (0) 2021.07.03
[C++]백준 1187번: 최소 스패닝 트리  (0) 2021.06.06
[python]백준 6603번: 로또  (0) 2021.05.02
[python] 백준 1002번: 터렛  (0) 2021.05.01
[python] 백준 1001번: A-B  (0) 2021.05.01
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함