
이차원 배열의 요소들을 아래로 떨어트려 쌓는 알고리즘

자바로 알고리즘 문제를 풀기 시작하며 알게된 간단한 것들을 정리한 글입니다.

프로그래머스 - 가장 큰 수 문제를 자바로 풀면서 문법 정리도 함께한 글입니다.

임의의 두 노드가 서로 같은 그래프(집합) 에 속하는지 판별하는 알고리즘이다.

그래프에서 최소한의 비용으로 모든 정점을 연결하기 위한 알고리즘이다.

이분탐색을 활용하여 어떤 함수 f(x) 를 만족하는 가장 크거나 작은 x 값을 찾기 위한 기술이다.

그래프 표현 방식엔 대표적으로 세가지가 있다. 알고리즘 문제를 풀때 어떤 표현 방식으로 접근해야 하는지 정리해봤다.

특정 구간 데이터의 합, 최대, 최소 계산을 효율적으로 구해보자
순환 가능성이 있는 그래프가 있을 때 a 에서 b 까지 도달할 수 있는 모든 경로을 구하는 방법을 알아보자.

Dijkstra 알고리즘이란 가중치가 있는 그래프에서 특정 정점에서 다른 모든 정점으로 가기 위한 최단 경로를 찾을때 사용하는 알고리즘이다.

문자열의 부분 문자열 탐색을 O(N)에 할수 있다

배열에서 가장 긴 증가하는 부분 수열을 구하는 방법을 최적화 해보고, 길이 뿐만 아니라 실제 값을 역추적해서 구해보자.

다익스트라에서 정점의 최단거리를 저장할 때, 상태가 추가될 수도 있다.

완전탐색을 해야하는데 N이 너무 클때 범위를 반으로 나누어서 시간복잡도를 줄이는 기법이다.

맨날 헷갈려서 정리하는 위상 정렬