[백준] 상자넣기 (1965)(kotlin)
문제 설명
입력 및 출력
» 입력
파일의 첫 번째 줄은 상자의 개수 n (1 ≤ n ≤ 1000)을 나타낸다. 두 번째 줄에는 각 상자의 크기가 순서대로 주어진다. 상자의 크기는 1,000을 넘지 않는 자연수이다.
» 출력
첫째 줄에 한 줄에 넣을 수 있는 최대의 상자 개수를 출력한다.
예제 입출력(테스트케이스)
입력 | 출력 |
---|---|
8 1 6 2 5 7 3 5 6 |
5 |
문제 풀이1
import kotlin.math.max
fun main(args: Array<String>) = with(System.`in`.bufferedReader()) {
val N: Int = readLine().toInt()
val box = readLine().split(" ").map { it.toInt() }
val dp = IntArray(N)
var count = 0
for (i in 0 until N) {
dp[i] = 1
for (j in 0 until i) {
if (box[j] < box[i]) {
dp[i] = max(dp[j] + 1, dp[i])
}
}
count = max(count, dp[i])
}
println(count)
}
문제 풀이1(시뮬레이션)