๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ฏ | ๋ฐฑ์ค€/๐Ÿ™‚ | Silver

[Kotlin, S2] ๋ฐฑ์ค€ 26007๋ฒˆ Codepowers

by immgga 2024. 12. 3.
๋ฐ˜์‘ํ˜•

์ถœ์ฒ˜: unsplash.com

 

Codepowers(26007๋ฒˆ)

Silver 2

# ๋ˆ„์  ํ•ฉ

 

๋ฌธ์ œ ๋‚ด์šฉ

 

 

๋ฌธ์ œ ์ ‘๊ทผ

๊ฐ ์ฟผ๋ฆฌ๋Š” ์‹œ์ž‘ ๋ผ์šด๋“œ(ํฌํ•จ), ์ข…๋ฃŒ ๋ผ์šด๋“œ(๋ฏธํฌํ•จ)์˜ ์‚ฌ์ด์— ์ง„ํ–‰๋œ ๋ผ์šด๋“œ๋งˆ๋‹ค์˜ ํ˜„์žฌ ๋ ˆ์ดํŒ…์„ ๊ตฌํ•ด์„œ k๋ณด๋‹ค ๋‚ฎ์€ ๋ ˆ์ดํŒ…์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•ด์„œ ์ถœ๋ ฅํ•˜๋ฉด ๋œ๋‹ค.

 

๋ฌธ์ œ ๋‚ด์šฉ์€ ๋‹จ์ˆœํ•˜์ง€๋งŒ ์™œ silver 2์”ฉ์ด๋‚˜ ๋ฐ›์•˜๋Š”์ง€ ์ƒ๊ฐํ•ด๋ด์•ผ ํ•œ๋‹ค.

 

 

๋ฌธ์ œ ํ•ด๊ฒฐ ์ฝ”๋“œ

๋”๋ณด๊ธฐ
import java.io.BufferedReader
import java.io.InputStreamReader
import java.util.StringTokenizer

fun main() {
    val bf = BufferedReader(InputStreamReader(System.`in`))
    // n: round, x: ์ดˆ๊ธฐ ๋ ˆ์ดํŒ…, m: ์ฟผ๋ฆฌ์˜ ๊ฐœ์ˆ˜, k: ๋‚ฎ์€ ๋ ˆ์ดํŒ… ๊ธฐ์ค€์ 
    val (n, m, k, x) = bf.readLine().split(" ").map { it.toInt() }
    val a = StringTokenizer(bf.readLine())
    val rating = Array(n + 1) { 0 }
    var score = x
    rating[0] = if (score < k) 1 else 0

    for (i in 1 until rating.size) {
        score += a.nextToken().toInt()
        rating[i] = if (score < k) rating[i - 1] + 1 else rating[i - 1]
    }

    val answer = StringBuilder()
    for (i in 0 until m) {
        val (l, r) = bf.readLine().split(" ").map { it.toInt() }

        answer.append("${rating[r - 1] - rating[l - 1]}\n")
    }

    println(answer)
}

 

๋ฌธ์ œ ํ’€์ด

score๋ฅผ a์˜ ์ž…๋ ฅ๊ฐ’๊ณผ ๋”ํ•ด์„œ ๋ผ์šด๋“œ ์ง„ํ–‰ ํ›„์˜ rating์„ ๊ตฌํ•˜๊ณ , ๋”ฐ๋กœ rating array๋ฅผ ๋งŒ๋“ค์–ด 1๋ผ์šด๋“œ๋ถ€ํ„ฐ i๋ผ์šด๋“œ๊นŒ์ง€ k๋ณด๋‹ค ์ž‘์€ ๋ ˆ์ดํŒ…์ด ์žˆ๋Š” ๋ผ์šด๋“œ์˜ ๊ฐœ์ˆ˜๋ฅผ ์„ธ์ค€๋‹ค.

k๋ณด๋‹ค ์ž‘์œผ๋ฉด ์ด์ „ ๊ฐ’์— 1์„ ๋”ํ•˜๊ณ  ์•„๋‹ˆ๋ฉด ์ด์ „ ๊ฐ’์„ ๊ฐ€์ ธ์˜จ๋‹ค.

 

๋‹ค์Œ์œผ๋กœ ์ฟผ๋ฆฌ๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ l ๋ผ์šด๋“œ๋ถ€ํ„ฐ r ๋ผ์šด๋“œ ์ง์ „๊นŒ์ง€์˜ rating์ด k๋ณด๋‹ค ์ž‘์€ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ rating์˜ r - 1๋ฒˆ์งธ index์— l - 1๋ฒˆ์งธ index๋ฅผ ๋นผ๋ฉด ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

๋ฌธ์ œ ํ•ด๊ฒฐ ๊ณผ์ •

๊ธฐ์กด์—๋Š” rating์— ๊ฐ๊ฐ์˜ ๋ผ์šด๋“œ ์ข…๋ฃŒ ํ›„์˜ rating์„ ์ €์žฅํ•ด ์ฃผ๊ณ , ์ฟผ๋ฆฌ์—์„œ l ๋ฒˆ๋ถ€ํ„ฐ r๋ฒˆ๊นŒ์ง€์˜ index๋ฅผ for๋กœ ํƒ์ƒ‰ํ•ด ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•ด์ฃผ์—ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.

์œ„์ฒ˜๋Ÿผ ๋‹จ์ˆœํ•˜๊ฒŒ ๊ตฌํ˜„์„ ํ•˜๋ฉด ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

 

๋ˆ„์  ํ•ฉ์„ ์ด์šฉํ•ด ์ฃผ์ž.

rating์˜ 0๋ฒˆ์งธ ๊ฐ’์€ ํ˜„์žฌ x๊ฐ€ k๋ณด๋‹ค ์ž‘์œผ๋ฉด 1, ์•„๋‹ˆ๋ฉด 0์ด๋‹ค.

๊ทธ๋‹ค์Œ์˜ 1๋ฒˆ์งธ index๋ถ€ํ„ฐ๋Š” ๊ฐฑ์‹ ๋œ score๊ฐ’์ด k๋ณด๋‹ค ์ž‘์œผ๋ฉด ์ด์ „ ๊ฐ’์— 1์„ ๋”ํ•ด์„œ ๋„ฃ๊ณ , ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ด์ „ ๊ฐ’์„ ๊ฐ€์ ธ์˜จ๋‹ค.

728x90
๋ฐ˜์‘ํ˜•