지금까지 공부했던 알고리즘을 복습하고 체화하기 위해또는 앞으로 공부해야할 새로운 알고리즘을 정리하기 위해시작해보겠습니다.
브루트 포스 알고리즘을 처음 만났을 때가 생각난다.지금까지 배웠던 바에 의하면 프로그램은 항상 최적의 길을 찾아서 움직여야한다.그렇기에 어떻게 하면 조금이라도 연산을 덜 할수 있는지 고민해왔다.조금이라도 시간복잡도, 공간복잡도를 낮추기 위해 효율적인 프로그램을 만들어야
분할 정복도 이름에서 나는 어떤 알고리즘이다 라고 말하는 것처럼이름만 봐도 어떤 방식으로 진행 될지 쉽게 유추할 수 있는 알고리즘이다.주어진 문제를 둘 이상의 부분 문제로 나누고, 각 문제에 대한 답을 계산하고, 그 답을 이용해서 전체 문제의 답을 도출해내는 알고리즘이
코딩 문제를 풀다보면 순열이나 조합을 구현해야할 때가 종종 있다.물론 dfs를 이용해 직접 구현할 수도 있겠지만 시간이 중요한 상황엔 미리 만들어져 있는 algorithm헤더 아래에 있는 next_permutation()함수를 이용하는 것이 편리하다.이 함수는 인자로