https://www.acmicpc.net/problem/1436
처음에 접근할 때는 666 왼쪽 오른쪽에 순차적으로 숫자를 넣으면 되지 않을까 라는 생각을 했는데, 생각보다 로직이 좀 까다로웠다. 666 -> 1666 -> 2666 이지만, 5666 -> 6661 -> 6662 순이고, 6669 -> 7666 으로 가야하기때문에,,,
물론 문제 조건에 범위가 10000까지라고 적혀있어서 한 번의 경우만 체크해도 괜찮았지만, 자릿수가 계속 커질 수록 따로 빼서 생각해야할 것이 많아진다.
그러므로 , 브루트포스 알고리즘을 이용하자..
모든 숫자를 하나하나 체크해보는거다.
0 부터 10000까지 1씩 올라가면서 666이 들어가있으면 카운트 하나 올리는 식으로.
해답코드
T = int(input())
cnt = 0
name = 0
while T > cnt:
if "666" in str(name):
cnt += 1
name += 1
print(name-1)
'항해99 > [항해99] 알고리즘' 카테고리의 다른 글
[BOJ] 9012 괄호 파이썬 (0) | 2024.01.15 |
---|---|
[BOJ]1002 터렛 파이썬 (0) | 2024.01.15 |
[알고리즘] 백준 19637 IF문 좀 대신 써줘 (0) | 2024.01.04 |
[BOJ] 10816 숫자카드 2 (0) | 2023.12.31 |
[항해99] DP - Dynamic Programming (0) | 2023.12.30 |