[백준] 2252 줄 세우기 - Graph Theory / Java
• 문제 링크 2252번: 줄 세우기 첫째 줄에 N(1 ≤ N ≤ 32,000), M(1 ≤ M ≤ 100,000)이 주어진다. M은 키를 비교한 회수이다. 다음 M개의 줄에는 키를 비교한 두 학생의 번호 A, B가 주어진다. 이는 학생 A가 학생 B의 앞에 서야 한다는 의 www.acmicpc.net • 풀이 과정 어떤 학생보다 키가 크므로 먼저 줄을 서야하는 학생의 수, 즉 외부 노드에서 들어오는 간선의 개수(진입 차수) 를 inDegree 배열에 저장하여 위상 정렬로 풀이한다. 예시로 학생 2 보다 큰 키의 학생 3, 4가 주어질 경우, (4, 2), (3, 2) 의 입력이 주어지고 inDegree[2]++ 가 총 두번 수행되어 inDegree[2] = 2 로 초기화된다. 이 후 학생 i 에 대하여..
2022. 8. 12.
[백준] 17088 등차수열 변환 - Brute Force / Java
• 문제 링크 17088번: 등차수열 변환 크기가 N인 수열 A = [A1, A2, ..., AN]이 있을 때, 모든 1 ≤ i < N에 대해서, Ai+1-Ai가 모두 일치하면 등차수열이라고 한다. 예를 들어, [3], [6, 6, 6], [2, 8, 14, 20], [6, 4, 2]는 등차수열이고, [4, 5, 4], [6, 3, 1] www.acmicpc.net • 풀이 과정 등차수열의 공차는 모든 항에 대해서 일치하므로, 수열의 첫째, 둘째 항의 공차의 값에 따라 다른 모든 항의 공차를 일치하게 연산할 수 있는지 확인한다. 첫째, 둘째 항 각각에 -1, 0, 1 를 더하는 경우, 즉 3 * 3 = 9가지의 경우를 가지므로 2중 for문 내부에 clone() 함수를 통해 배열을 초기화하여 각각의 경우..
2022. 8. 10.