본문 바로가기

알고리즘

(3)
[Algorithm] 가장 간단한 알고리즘 - 브루트 포스법 브루트 포스법 : brutu는 무식한, force는 힘이라는 뜻이다. 무식하게 힘으로 해결하는 방법. 즉, 가장 간단한 알고리즘으로 가능한 모든 경우의 수를 검사하는 알고리즘이다. 브루트 포스법은 문자열 검색 중 가장 가장 기초적이고 단순한 알고리즘이다. 문자열 검색 string searching 이란 ? : 어떤 문자열 안에 다른 문자열이 포함되어 있는지 검사하고, 만약 포함되어 있다면 어디에 위치하는지 찾아내는 것. 텍스트 text : 검색되는 쪽의 문자열 패턴 pattern : 찾아내는 문자열 ex. 문자열 'yena'에서 'na'를 검색하면 성공, 'bibi'에서 'na'를 검색하면 실패. 여기서 텍스트는 'yena', 'jiyun'이 되고, 패턴은 'na'가 된다. 브루트 포스법 brute fo..
[Algorithm] 재귀 Recursion 재귀 recursion 재귀 알고리즘의 기본 재귀란 ? 어떠한 이벤트에서 자기 자신을 포함하고 다시 자기 자신을 사용하여 정의되는 경우 재귀를 사용하면 프로그램을 간결하고 효율성 좋게 작성할 수 있음 재귀 호출 recursive call '자기 자신과 똑같은 함수'를 호출한다. ex - 팩토리얼 구하기 factorial() 함수는 n - 1의 팩토리얼 값을 구하기 위해 다시 자기 자신과 똑같은 factorial() 함수를 호출한다. def factorial(n: int) -> int: """양의 정수 n의 팩토리얼을 구하는 과정""" if n > 0: return n * factorial(n - 1) else: return 1 if __name__ == '__main__': n = int(input('출..
[백준 1011] Fly me to the Alpha Centauri 파이썬 python 문제 나의 풀이 소스코드 t = int(input()) for _ in range(t): x, y = map(int, input().split()) distance = y - x # y와 x사이의 거리 tmp = 0 # 이동 거리 cnt = 0 # 공간 장치 이동 횟수 moving = 0 # 반복 횟수 while tmp < distance: cnt += 1 if cnt % 2 != 0: moving += 1 tmp += moving print(cnt) 해설 백준 단계별 풀어보기 하는 중 안풀려서 며칠 고민했던 문제다. 수학 유형은 직접 나열해보면서 규칙성을 파악해야한다. 특히, 문제에서 종료조건을 제대로 설정안해서 처음에 비효율적이고, 시간 초과가 나오는 코드를 만들었다. 1. 공간 장치 이동 횟수는 (..

반응형