반응형
Python 코드
n = int(input()) # 입력값 N
cnt = 0 # "666"이 들어가는 수 카운트 변수
num = 666 # 시작 숫자
while True:
if "666" in str(num): # "666"이 들어가면
cnt += 1 # 카운트 증가
if cnt == n: # 카운트가 N과 같아지면
print(num) # 해당 숫자 출력
break # 반복문 종료
num += 1 # 다음 숫자로 이동
Python 코드 풀이
1. 코드에 대한 전체적인 풀이
"666"이 들어가는 숫자 중에서 N번째로 작은 수를 출력하는 문제에 대한 저의 해결 방법을 소개하겠습니다.
이 문제를 해결하려면 모든 수를 탐색하면서 "666"이 들어가는 수를 찾아야 합니다. 이를 위해 저는 브루트포스 알고리즘을 사용하여 문제를 해결하였습니다.
"666"부터 시작하여 1씩 증가시키면서 "666"이 들어가는지 검사하였습니다. "666"이 들어가면 카운트를 하나씩 증가시키는 방법을 채택하였습니다.
이 과정을 무한 반복하면서 카운트가 입력값 n과 동일해지면 그 값을 출력하고 프로그램을 종료하였습니다.
※ 브루트포스 알고리즘(Brute Force Algorithm) ※
브루트포스 알고리즘에 대해 간략히 설명드리면, 이 알고리즘은 문제를 해결할 때 가능한 모든 경우의 수를 탐색하는 알고리즘입니다. 해당 알고리즘은 가능한 모든 경우의 수를 탐색하기 때문에 시간 복잡도가 매우 높습니다. 그러므로 문제를 해결하는데 걸리는 시간이나 메모리가 충분히 작은 경우에만 이 알고리즘을 사용하는 것이 바람직합니다.
혹시라도 추가적인 질문이 있으시다면 언제든지 말씀해주세요!
반응형
'BOJ' 카테고리의 다른 글
백준 11659번 - 구간 합 구하기 4 [python] (0) | 2023.04.03 |
---|---|
백준 17608번 - 막대기 [python] (0) | 2023.03.18 |
백준 1874번 - 스택 수열 [python] (0) | 2023.03.18 |
백준 10799번 - 쇠막대기 [python] (0) | 2023.03.17 |
백준 10828번 - 스택 [python] (0) | 2023.03.17 |