-
[알고리즘] 1436 파이썬TodayILearned/알고리즘 2021. 3. 18. 20:20주요개념: 브루트포스법
- 브루트포스법은 문자열 검색하는 방법 중 하나이다.
- 모든 문자열을 비교하여 조건에 부합하는 값을 도출하는것이 목표이다.
- 해당 문제에서는 최소 종말수인 666부터 시작하여 667,668,669..1666...2666....9666까지 비교한다
- 비교하면서 종말수의 조건에 부합하는 숫자를 찾는다.
- 몇번째 종말수인지 카운트한다.
while True : > 특정조건을 만족할 경우(break 문에 걸리는 경우) 를 제외하고 무제한으로 실행된다.
int형태로는 if~in 구문을 쓸 수 없기 때문에, str형태로 변환시켜준 후 진행한다.
n = int(input()) count = 0 six_n = 666 while True: if '666' in str(six_n): # if in 은 string만 비교 count += 1 # 아래 if 하위 수준이 아닌 이유: # 하위수준일 경우, 1번 조건이 무한반복되기 때문에 하위로 안내려옴 # and를 쓸 경우, 둘 다 만족해야해서 count=n인 경우가 0제외하고 충족안됨 # or쓸 경우, 계속 666이 있기 때문에 무한반복됨 # 그래서 if문을 동일수준으로 두개 만들어야함. if count == n: print(six_n) break # 브레이크없으면 무한반복 else: six_n = six_n + 1 # 666,667,668,669,...1666,1667,1668...
'TodayILearned > 알고리즘' 카테고리의 다른 글
프로그래머스 최댓값과 최솟값 (0) 2021.06.14 프로그래머스 짝지어제거하기 (0) 2021.06.14 [알고리즘] 10828 파이썬 (0) 2021.03.18 [알고리즘] 백준 1260 파이썬 (0) 2021.03.18 [알고리즘] 백준 1011 (0) 2021.03.13