1. ๋ฐฐ์ด์
์ผ์ ํ์ด ์ดํ๋ถํฐ๋ ํ์ด ๋ฐฉ์์ด ๋๊ฐ์. ๋ถ๋ช ํ ๋ง๋ ๋ฐฉ์ ๊ฐ์๋ฐ ์๊พธ ์๊ฐ ์ด๊ณผ๋์ ์ ์ด๋ฐ๊ฐ ์ถ์ด์ ๋ค๋ฅธ ๋ถ ๋ธ๋ก๊ทธ ๋ณด๊ณ ๋ค๋ฅธ์ ๋ง ๊ณ ์ณค๋๋ ๋ง์..
๋ช
ํํ๊ฒ ๋ฌธ์ ์๋ ๋ถ๋ถ์ visited๋ฅผ IntArray๊ฐ ์๋๋ผ BooleanArray๋ก ์ ์ธํ ์ ๊ฐ์.
์ง์ง ํ์ด๊ฐ ๋ค ๋๊ฐ์๋ฐ ๋ฐฉ๋ฌธํ๋์ง ์ฌ๋ถ๋ฅผ Boolean Array๋ก ํ๋๊น ์๊ฐ ์๋ชจ๊ฐ ๋ ํฐ๊ฐ๋ด..
๊ทธ๋ฆฌ๊ณ ์ด๊ฑด ๋ฌธ์ ์ธ์ง๋ ์ ๋ชจ๋ฅด๊ฒ ์ง๋ง ์ฒ์์๋ ๋ต์ด ๋ ์ ์๋ ๊ฒ์ answer๋ผ๋ mutableList์ ๋ฃ์ด์ ๊ทธ๊ฑธ ์ํํ๋ฉด์ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ์. ๊ทผ๋ฐ ๊ทธ๋ฅ answer๋ฅผ ์ฌ์ฉํ์ง ์๊ณ bufferWriter๋ฅผ answer๋ง๋ฅ ์ฌ์ฉํ๋ ๋ฐฉ์์ผ๋ก ๋ฐ๊ฟ.
๋ด ์ ์ถ ํํฉ์ธ๋ฐ ์๊ธฐ์ง๋ ์๋ค..ใ ์๊ฐ์ด๊ณผ ์ค์ด๋ ค๊ณ ํผ์ ์ ์ถ ์ชฝ ํ ํ์ด์ง ๋ค ์ ใ ใ ใ ;;
2. my code
package baekjoon
import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter
import java.util.*
import kotlin.collections.ArrayList
fun main(args: Array<String>) {
// input
val br = BufferedReader(InputStreamReader(System.`in`))
var st = StringTokenizer(br.readLine())
val size = st.nextToken().toInt()
val m = st.nextToken().toInt()
val nodes = Array(size+1){ArrayList<Int>()}
repeat(m) {
st = StringTokenizer(br.readLine())
val x = st.nextToken().toInt()
val y = st.nextToken().toInt()
nodes[y].add(x)
}
fun dfs(
parent: Int,
visited: IntArray,
) {
visited[parent] = 1
for (i in 0 until nodes[parent].size) {
if (visited[nodes[parent][i]] == 0) {
dfs(nodes[parent][i], visited)
}
}
}
var max = 0
var bw = BufferedWriter(OutputStreamWriter(System.out))
var visited: IntArray
(1..size).forEach {
visited = IntArray(size + 1){ _ -> 0 }
dfs(it, visited)
val sum = visited.sum()
if (sum > max) {
max = sum
bw = BufferedWriter(OutputStreamWriter(System.out))
bw.append("$it ")
} else if (sum == max) { bw.append("$it ") }
}
bw.flush()
bw.close()
}