-
[백준][Kotlin] 13023번 ABCDE백준 2023. 3. 10. 23:53728x90
DFS를 이용하여 해당 문제를 작성하였으며, 간단히 문제 설명을 하자면 DFS로 봤을때는 깊이가 5 이상인 node가 존재 유무를 파악 하는 문제였습니다.
하기는 제가 작성한 코드와 제출 결과 입니다.
import java.io.BufferedReader import java.io.BufferedWriter import java.io.InputStreamReader import java.io.OutputStreamWriter import java.util.* import kotlin.collections.ArrayList lateinit var visit : BooleanArray lateinit var friendList : Array<ArrayList<Int>> var count = 0 fun main() { val br = BufferedReader(InputStreamReader(System.`in`)) //var bw = BufferedWriter(OutputStreamWriter(System.out)) var st = StringTokenizer(br.readLine()) val N = st.nextToken().toInt() val M = st.nextToken().toInt() friendList = Array(N) { ArrayList<Int>() } repeat(M){ st = StringTokenizer(br.readLine()) val friend1 = st.nextToken().toInt() val friend2 = st.nextToken().toInt() friendList[friend1].add(friend2) friendList[friend2].add(friend1) } visit = BooleanArray(N){true} for(i in 0 ..visit.size-1){ dfs(i,0) if(count == 1) break } println(count) //bw.flush() //bw.close() } fun dfs(fri:Int,deep: Int){ visit[fri] = false if(deep == 4) { count = 1 return } for(i in 0 .. friendList[fri].size-1){ if(visit[ friendList[fri][i] ]){ dfs(friendList[fri][i],deep+1) } } visit[fri] = true }
'백준' 카테고리의 다른 글
[백준][Kotlin] 2178번 미로 탐색 (2) 2023.03.11 [백준][Kotlin]1260번 DFS와 BFS (0) 2023.03.11 [백준][Kotlin] 2023번 신기한 소수 (0) 2023.03.10 [백준][Kotlin]14502번 연구소 (0) 2023.03.09 [백준][Kotlin] 11724번 연결 요소의 개수 (0) 2023.03.03