정렬 문제로, 두 수를 정렬할 때 34, 3이라고 하면 343 > 334이므로 34, 3으로 정렬해야만 큰 수를 뽑아낼 수 있다 문제: https://www.acmicpc.net/problem/16496 깃허브주소: https://github.com/surinoel/boj/blob/master/16496.cpp
플로이드 와샬 문제지만, 노드 간의 거리를 굳이 알 필요는 없고 연결 유무만 알면 된다. 플로이드 와샬을 쓰는 이유는 모든 정점에서의 최단 경로를 알 수 있기 때문이다. 플로이드 와샬을 구했다면 어떻게 순서를 알 수 있는 것일까? 1. 어느 한 노드를 잡아본다 2. 나머지 노드간의 관계에서 연결된 노드가 있다면 이 노드는 순서를 알 수 없다 3. 왜냐하면 순서를 명확히 알 수 있다면 자신에서 나가는 노드의 합과 들어오는 노드의 합이 반드시 N-1이어야만 한다 문제: https://www.acmicpc.net/problem/2458 깃허브주소: https://github.com/surinoel/boj/blob/master/2458.cpp
최대의 구멍을 구하는 문제다. 전원에 꽂을 때부터 마지막 전 멀티탭까지는 잇는 과정 속에서 하나가 소요된다. 처음엔 정렬된 상황에서 가장 많은 구가 있는 것부터 꽂아야 된다고 생각하지만 결국엔 어떻게 잇든 간에 똑같은 구가 남게 된다. 따라서 정렬 없이 데이터를 받을 때마다 -1씩 빼주면서 합한 후 마지막에 마지막 멀티탭에 대해서만 고려해줘서 +1을 해줘서 정답을 출력한다 문제: https://www.acmicpc.net/problem/2010 깃허브주소: https://github.com/surinoel/boj/blob/master/2010.cpp
1. 피연산자는 바로 출력한다 2. 연산자가 들어오면 자신보다 우선순위가 높은 연산자는 스택에서 모두 pop 3. 여는 괄호는 무조건 push 4. 닫는 괄호가 나오면 무조건 여는 괄호가 나올 때까지 pop 5. 마지막에 스택에 남아있는 연산자 모두 pop 문제: https://www.acmicpc.net/problem/1918 깃허브주소: https://github.com/surinoel/boj/blob/master/1918.cpp
재귀 함수로 base 케이스까지 규칙을 찾아서 출력하는 문제. 출력에서 주의할 점은 ' '과 \0은 콘솔에서는 공백처럼 같게 출력되지만 실제 채점 시스템에서는 ' ' 출력을 요구하고 있다 문제: https://www.acmicpc.net/problem/10994 깃허브주소: https://github.com/surinoel/boj/blob/master/10994.cpp
최대 힙 < 최소 힙의 논리를 가지는 최대 힙, 최소 힙을 가지고 lgN의 시간복잡도 안에서 중앙값을 구하는 문제다 문제: https://www.acmicpc.net/problem/2696 깃허브주소: https://github.com/surinoel/boj/blob/master/2696.cpp