백준 2003 수들의 합 2 Kotlin

: ) YOUNG·2023년 8월 8일
1

알고리즘

목록 보기
232/370
post-thumbnail

백준 2003번
https://www.acmicpc.net/problem/2003

문제




생각하기


  • 누적 합 문제이다.

동작



코드


Kotlin


import java.io.*
import java.util.*

// input
private lateinit var br: BufferedReader

// variables
private var N = 0
private var M = 0

private lateinit var arr: IntArray

fun main() {
    br = BufferedReader(InputStreamReader(System.`in`))
    val bw = BufferedWriter(OutputStreamWriter(System.out))

    input()

    bw.write(solve())
    bw.close()
} // End of main

private fun solve(): String {
    val sb = StringBuilder()

    var ans = 0
    var sum = 0
    var l = 0

    for (i in 0 until N) {
        sum += arr[i]

        while (sum > M && l <= i) {
            sum -= arr[l]
            l++
        }

        if (sum == M) ans++
    }

    sb.append(ans)
    return sb.toString()
} // End of solve

private fun input() {
    StringTokenizer(br.readLine()).run {
        N = nextToken().toInt()
        M = nextToken().toInt()
    }

    arr = IntArray(N)
    StringTokenizer(br.readLine()).run {
        for (i in 0 until N) {
            arr[i] = nextToken().toInt()
        }
    }
} // End of inpute().toLong()
} // End of input

0개의 댓글