[Kotlin] ๋ฐฑ์ค 2693 - N๋ฒ์งธ ํฐ ์
๋ฌธ์
๋ฐฐ์ด A๊ฐ ์ฃผ์ด์ก์ ๋, N๋ฒ์งธ ํฐ ๊ฐ์ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
๋ฐฐ์ด A์ ํฌ๊ธฐ๋ ํญ์ 10์ด๊ณ , ์์ฐ์๋ง ๊ฐ์ง๊ณ ์๋ค. N์ ํญ์ 3์ด๋ค.
์ฒซ์งธ ์ค์ ํ ์คํธ ์ผ์ด์ค์ ๊ฐ์ T(1 ≤ T ≤ 1,000)๊ฐ ์ฃผ์ด์ง๋ค. ๊ฐ ํ ์คํธ ์ผ์ด์ค๋ ํ ์ค๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ , ๋ฐฐ์ด A์ ์์ 10๊ฐ๊ฐ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋์ด ์ฃผ์ด์ง๋ค. ์ด ์์๋ 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 1,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๋ค.
ํ์ด
1. ์ซ์ํ ๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ ๋น๊ตํ๋ค.
2. n๋ฒ์งธ ์ซ์๋ฅผ ์ฐพ์๋ด๋๊ฒ -> ์ ๋ ฌ์ ๊ณ ๋ คํ๋ค. -> ๊ธฐ๋ณธ 1ํ ์ ๋ ฌ๋ก ํ์ด๊ฐ ๊ฐ๋ฅํ๋ค.
3. ๋ด๋ถํจ์๋ฅผ ์ด์ฉํ ์๊ฐ๋ณต์ก๋๋ O(nlog(n))์ผ๋ก ์๊ฐ ์์ผ๋ก ํ์ด๊ฐ ๊ฐ๋ฅํ๋ฏ๋ก ์ฑํํ๋ค.
์์ค
import java.util.*
fun main() = with(System.`in`.bufferedReader()) {
val sb = StringBuilder()
val N = 3
val L = 10
val T = readLine().toInt() // ํ
์คํธ ์ผ์ด์ค์ ์ ์
๋ ฅ
// ํ
์คํธ ์ผ์ด์ค ์ ๋งํผ ๋ฐ๋ณต
repeat(T){
val arr = IntArray(L) // ๊ฐ์ ์ ์ฅํ ๋ฐฐ์ด
val st = StringTokenizer(readLine()) // ํ
์คํธ ์ผ์ด์ค ์
๋ ฅ
// ํ
์คํธ ์ผ์ด์ค ์์ ์ซ์๋งํผ ๋ฐ๋ณตํ๋ฉฐ ๋ฐฐ์ด์ ๋์
repeat(L){
arr[it] = st.nextToken().toInt() // ์ ๋ ฌํ ๋ฐฐ์ด์ ์ซ์๋ฅผ ๋์
}
arr.sortDescending() // ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ(์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํด๋ ๋ฌด๋ฐฉ)
sb.append("${arr[N-1]}\n") // 3๋ฒ์งธ(N-1) ๊ฐ์ ์ถ๋ ฅ๊ฐ์ ์ ์ฅ(์ค๋ฆ์ฐจ์์ ๊ฒฝ์ฐ 7๋ฒ์งธ ๊ฐ)
}
println(sb)
}