동적 프로그래밍 -> 기억하기 프로그래밍하나의 큰 문제를 여러 개의 작은 문제로 나누어서 그 결과를 저장하여 다시 큰 문제를 해결할 때 사용큰 문제를 작은 문제로 쪼개서 그 답을 저장해두고 재활용 함1) Overlapping subproblems동일한 작은 문제들이 반
주어진 배열에서 가장 작은 최소값을 찾고 배열의 맨 앞의 값과 위치를 바꾸면서 정렬첫번째 원소부터 인접한 원소와 비교하며 자리를 바꾸면서 맨 끝부터 정렬삽입 정렬은 버블 정렬의 비효율성을 개선하기 위해 등장한 방법. i번째 원소를 정렬된 상태의 앞부분과 비교하여 적절한
node와 node가 서로 연결되어 있음상기 이미지와 같이 Next Link Field와 Previous Link Field가 존재함node를 탐색하는 방향이 양쪽으로 가능함단방향 연결 리스트는 다음 노드의 탐색만 가능했지만, 이중 연결 리스트는 앞뒤로 탐색이 가능함
DFS는 가장 끝의 데이터를 추출BFS는 가장 앞의 데이터를 추출
백트래킹은 불필요한 탐색을 하지 않음ex) 132, 234, 123 중에서 123을 찾고자 할 때,132에 접근 시 십의 자릿수가 다르면 더 이상 탐색을 하지 않고 다음 수로 넘어감자연수 N, M이 주어질 때, 숫자 1부터 N까지 중복 없는 M개의 요소를 가진 수열을
itertools를 사용하지 않기 위해 조합과 순열을 재귀를 통해 구현