23-04-11
완전탐색 ( 브루트포스문제 )
문제 고민시간 : 20m
해결과정
198+1+9+8 = (216)
198은 216의 생성 자
198의 분해합은 216
관건 216만 주어졌을때 가장 작은 생성자인 198을 어떻게 구했느냐 (생성자가 없는 겨우 0 출력)
256의 생성자 245 245+2+4+5 = 256
10분경과. 분해합과 생성자 사이에 연관성을 모르겠음 ;;
--> 이러다가 브루트 포스는 그냥 for 문으로 i 부터 시작해서 나가면 될것같다라는 생각듬 ( 이게 맞음 )
브루트 포스 algor
- 선형으로 정리해보자 -> 이문제를 선형으로 어케 ??
코드
#완전탐색 _ 부분합
n = int(input())
for i in range(1,n+1):
tmp = sum(map(int,str(i)))
n_sum = i+ tmp
if n_sum == n:
print(i)
break
if i==n:
print(0)
답지를 보고도 오류가 계속 났다. 다음날에 다시 해봄
if n_sum == n :
print(n_sum) 으로 계속했던 것임 ;;
후기
오랜만에 백준 문제 풀기.. 이제 진짜 해야한다 브루트 포스 문제는 일단 걍 for문으로 i 까지 돌리기
map ( int,str(i)) 이런 라이브러리를 기억하자
'백준 baekjoon' 카테고리의 다른 글
[백준 10448] 유레카이론 (0) | 2023.04.13 |
---|---|
[백준 2309] 일곱난쟁이 (0) | 2023.04.11 |
백준 [1213] 팰린드롬 만들기.py (0) | 2023.01.02 |
백준 [1543] 문서검색.py (0) | 2023.01.01 |
백준 [1919] 애너그램 만들기.py (0) | 2023.01.01 |