: 무식하게 전부 다 시도해보는 방식. 가능한 모든 경우를 일일이 확인하면서 정답을 찾는 방식✅ 브루트포스 알고리즘의 특징방식: 모든 경우를 하나하나 다 탐색해서 답을 찾음장점구현이 간단하다.정답을 확실히 찾을 수 있다.단점시간이 오래 걸린다. (비효율적)입력이 커지면
: 매 단계에서 가장 최선이라고 생각되는 선택을 하는 알고리즘. 이때 "최선"이란 현재 상황에서 가장 좋아보이는 선택(예: 가장 큰 값, 가장 작은 비용 등)을 의미하며, 이런 선택을 반복한 결과가 전체 문제의 최적해(Optimal Solution)로 이어지는 방식.탐
: Merge Sort + Insertion Sort를 결합한 하이브리드 정렬 알고리즘.: Java의 Arrays.sort()에서 실제로 사용되는 정렬 알고리즘즉, 자바에서 Arrays.sort()를 쓰면 내부적으로 TimSort가 작동.Merge Sort: 시간 복잡
: Dual-Pivot QuickSort(이중 피벗 퀵소트)는 전통적인 QuickSort(퀵 정렬)의 변형으로, 이름 그대로 두 개의 피벗(pivot)을 사용하여 배열을 세 부분으로 나누고 재귀적으로 정렬하는 방식이다.: 이 방식은 Java의 Arrays.sort()에
프로그래머스 - 겹치는 선분의 길이 에서 알게된 누적합 & 스위핑 알고리즘누적합(Prefix Sum. 차이 배열 포함)스위핑(Sweep Line Algorithm0두 방법 모두 "구간" 문제를 다룰 때 자주 사용. 개념 자체도 서로 연결되어 있음문제에서 주어지는 선분
DFS/BFS는 완전탐색의 한 종류로 볼 수 있음완전탐색은 "모든 경우를 다 시도"하는 전략을 의미하고, DFS/BFS는 구조화된 방식으로 탐색하여 시간/공간을 효율적으로 관리함따라서, 단순한 경우의 수가 적으면 완전탐색 → 경우 많으면 DFS/BFS(혹은 백트래킹/가
트리 문제를 처음 접했을 때 특히 중요한 핵심 개념 + 자주 쓰이는 패턴 모음프로그래머스) 전력망을 둘로 나누기 문제로 알아보는 트리 탐색 핵심 개념 정리노드 n개 → 간선 n-1개사이클 없음연결 그래프간선 하나만 끊으면 정확히 두 개의 트리로 분리됨트리의 구조상 한
동적 계획법(DP)을 구현하는 두 가지 주요 방식반복적(Iterative) DP (상향식, Bottom-up)재귀 + 메모이제이션(Recursive + Memoization) (하향식 + Top-down)방향: 작은 문제부터 시작하여 점차 큰 문제의 해를 계산구현: 주