[백준] 10451번: 순열 사이클 - Kotlin[코틀린]
·
알고리즘/Baekjoon
문제 10451번: 순열 사이클 1부터 N까지 정수 N개로 이루어진 순열을 나타내는 방법은 여러 가지가 있다. 예를 들어, 8개의 수로 이루어진 순열 (3, 2, 7, 8, 1, 4, 5, 6)을 배열을 이용해 표현하면 \(\begin{pmatrix} 1 & 2 &3&4&5&6&7&8 \\ 3 www.acmicpc.net 풀이 DFS를 활용해 순열 사이클을 구할 수 있다. 입력받은 배열에는 다음으로 이동할 위치를 가르키고 있기 때문에 현재 위치는 방문 표시를 해주고 가르키는 위치로 DFS 탐색을 해주면 된다. 만약 현재 위치에서 가르키는 위치가 이미 방문했던 위치인 경우, 순열 사이클이 만들어진 것이다. 반복문을 통해 각 위치에서 시작하는 사이클을 구하면 되는데, 이미 방문했던 위치는 사이클에 포함되어 ..
[백준] 9372번: 상근이의 여행 - Kotlin[코틀린]
·
알고리즘/Baekjoon
문제 9372번: 상근이의 여행 첫 번째 줄에는 테스트 케이스의 수 T(T ≤ 100)가 주어지고, 각 테스트 케이스마다 다음과 같은 정보가 주어진다. 첫 번째 줄에는 국가의 수 N(2 ≤ N ≤ 1 000)과 비행기의 종류 M(1 ≤ M ≤ 10 000) 가 www.acmicpc.net 풀이 문제의 답은 모든 노드(국가)를 연결할 수 있는 간선(비행기)의 개수로 노드(국가)의 개수에서 1을 빼면 된다. 만약 문제가 최소 비행 횟수나 최단 거리를 찾는 것이었다면 입력받은 간선으로 그래프를 만들어야 했겠지만, 이 문제에서는 타야하는 비행기의 종류만 구하면 되기 때문에 간단히 노드 개수에서 1을 빼주면 된다. 코드 import java.util.* fun main() { val br = System.`in`..