최단 경로(벨만-포드) 문제 솔루션
[1. 개요] 시간 복잡도 O(VE) 모든 Edge 의 relax 를 |V| 번 만큼 반복, 마지막 |V| 번째에서 relax 가 발생한다면, 음수 사이클이 있다는 것이다. 함정 벨만-포드 수행 후 어떤 노드 u 까지 가는 경로가 존재하는가? upper[u] != INF 가 아니라고 판단하면 안된다. 그래프가 아래와 같이, 완전히 연결되지 않았다면, 시작점과 연결되지 않은 상태에서, 음수 사이클이 있다면, 적당히 큰 값 M 에 대한 어떤 연산 결과가 참이라면 u 까지 가는 경로가 있다고 판단해야함. => 이 값은 문제 조건에 따라 다름... => weight 조건이 [0, K] 이고 (음수 weight 와 별개로.. 양수 weight 에 대해서만), => 전체 edge 개수가, L 개라면, => M=KL..
분할 정복. [24060]
[1. 문제 설명] https://www.acmicpc.net/problem/24060 [2. 풀이 접근] 병합 정렬 구현 시 헷갈리는 부분 정리... 병합 정렬 구현 시 재귀를 사용하는데, 재귀의 탈출 조건 병합 정렬 시, 전체 구간을 어떻게 정의 할 것인가? => 배열의 길이가 N 일 때 => [0, N) 으로 범위를 잡지말고, => [0, N-1] 로 그 범위를 잡아야 함. => 동일한 표현이긴 한데, if, while 에서 등호 여부에 따라 답이 갈릴 수 있으므로, => 한가지 패턴으로 정의하는 것이 좋다. ==> ex) [0, N-1] 이면 분할 시 while (left N-1 까지 사용가능하므로, 등호 성립이 필요함. [3. 코드]