[백준 11660 - Kotlin] 구간 합 구하기 5
10958 단어 DPCumulative SumkotlinCumulative Sum
- 시각 자료 추천 블로그 (https://subbak2.tistory.com/65)
import java.io.BufferedReader
import java.io.BufferedWriter
private lateinit var bufferedReader: BufferedReader
private lateinit var bufferedWriter: BufferedWriter
fun main() {
bufferedReader = System.`in`.bufferedReader()
bufferedWriter = System.out.bufferedWriter()
// 1. get (n, m)
val (n, m) = bufferedReader
.readLine()
.split(" ")
.map { it.toInt() }
// 2. create (n + 1) x (n + 1) data structure (Array<MutableList<Int>>)
val table = Array(n + 1) { mutableListOf(0) }
// 3. get elements
repeat(n) { index ->
val elements = bufferedReader
.readLine()
.split(" ")
.map { it.toInt() }
table[index + 1].addAll(elements)
}
// 4. create cumulative sum data structure
val sum = Array(n + 1) { Array(n + 1) { 0 } }
// 5. set row cumulative sum
for (i in 1..n) {
for (j in 1..n) {
sum[i][j] = sum[i][j - 1] + sum[i - 1][j] - sum[i - 1][j - 1] + table[i][j]
}
}
// 6. get (x1, x2), (y1, y2)
repeat(m) {
val (x1, y1, x2, y2) = bufferedReader
.readLine()
.split(" ")
.map { it.toInt() }
// 7. get cumulative sum
bufferedWriter.write("${sum[x2][y2] - sum[x1 - 1][y2] - sum[x2][y1 - 1] + sum[x1 - 1][y1 - 1]}\n")
}
bufferedReader.close()
bufferedWriter.close()
}
Author And Source
이 문제에 관하여([백준 11660 - Kotlin] 구간 합 구하기 5), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kldaji/백준-11660-Kotlin-구간-합-구하기-5저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)