탐욕법(Greedy)이란?
문제를 해결하는 각 단계에서 현재 상황에서 가장 좋아 보이는 선택을 반복적으로 내려 전체 문제를 해결하는 기법이다. - 핵심: "지금 당장 최선인 선택을 하고, 그 선택을 절대 번복하지 않는다!" - 매 단계마다 부분 최적해를 선택하며, 이 선택들이 모여 전체 최적해가 되기를 기대한다....
4 posts
문제를 해결하는 각 단계에서 현재 상황에서 가장 좋아 보이는 선택을 반복적으로 내려 전체 문제를 해결하는 기법이다. - 핵심: "지금 당장 최선인 선택을 하고, 그 선택을 절대 번복하지 않는다!" - 매 단계마다 부분 최적해를 선택하며, 이 선택들이 모여 전체 최적해가 되기를 기대한다....
DFS(Depth-First Search, 깊이 우선 탐색) 와 BFS(Breadth-First Search, 너비 우선 탐색) 는 그래프·트리에서 모든 정점을 빠짐없이 방문하기 위한 가장 기본적인 탐색 알고리즘이다. 둘 다 "아직 방문하지 않은 이웃으로 이동한다"는 큰 틀은 같지만, 다음 노드를 고르는 기준(탐색 순서) 이 다르다. 대부분의 문제는 결국 "어떤 상태(노드)에서 다른 상태로 갈 수 있는가" 로 모델링된다....
이전에 만들었던 포트폴리오 메인 페이지의 상단 영역에 음절이 화면 위에서 떨어지는 인터랙션 기능을 구현했습니다. - "안", "녕", "하", "세", "요"... 와 같은 한글 음절이 하나씩 낙하 - 바닥·벽에 부딪히며 쌓이고, 마우스/터치로 드래그 하며 이동 가능...
동적 계획법(Dynamic Programming, DP) 은 하나의 큰 문제를 작은 하위 문제들로 나눈 뒤, 하위 문제의 값를 저장해 두고 재활용하여 전체 문제의 효율성을 극대화하는 기법이다. - 핵심 컨셉: "이미 계산한 값은 메모리에 저장해 두고 다시 계산하지 않는다!" - 시간 복잡도 혁신: 단순 재귀 호출 시 지수 시간 O(2^N)이 걸리는 문제를, 선형 시간 O(N) 또는 다항 시간 내로 대폭 감축한다....