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

[Kotlin, S5] ๋ฐฑ์ค€ 2828๋ฒˆ ์‚ฌ๊ณผ ๋‹ด๊ธฐ ๊ฒŒ์ž„

by immgga 2024. 9. 6.

์ถœ์ฒ˜: unsplash.com

 

์‚ฌ๊ณผ ๋‹ด๊ธฐ ๊ฒŒ์ž„(2828๋ฒˆ)

Silver 5

#๊ตฌํ˜„ #๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜

https://www.acmicpc.net/problem/2828

 

๋ฌธ์ œ ๋‚ด์šฉ

 

 

๋ฌธ์ œ ์ ‘๊ทผ

์‚ฌ๊ณผ๋ฅผ ๋‹ด์„ ์ˆ˜ ์žˆ๋Š” ๋ฐ”๊ตฌ๋‹ˆ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.

๋ฐ”๊ตฌ๋‹ˆ์˜ ๋ฒ”์œ„ ์•ˆ์— ์ •ํ™•ํžˆ ์‚ฌ๊ณผ๋ฅผ ๋„ฃ์–ด์•ผ ํ•  ๋•Œ, ๋ฐ”๊ตฌ๋‹ˆ๋ฅผ ์›€์ง์ด๋Š” ์ตœ์†Œ ํšŸ์ˆ˜๋ฅผ ๊ตฌํ•ด์•ผ ํ•œ๋‹ค.

๋ฐ”๊ตฌ๋‹ˆ์˜ ๋„“์ด๊ฐ€ 1๋ณด๋‹ค ํด ์ˆ˜๋„ ์žˆ๋‹ค.

 

์‚ฌ๊ณผ๊ฐ€ ๋–จ์–ด์ง€๋Š” ์ˆœ์„œ๋Š” ์ž…๋ ฅ ์ˆœ์„œ๋Œ€๋กœ ๋–จ์–ด์ง„๋‹ค.

๋–จ์–ด์ง€๋Š” ์œ„์น˜์— ๋ฐ”๊ตฌ๋‹ˆ๋ฅผ ์˜ฎ๊ฒจ ์ฃผ๋ฉด ๋œ๋‹ค.

 

์ž…๋ ฅ ์˜ˆ์ œ 1์„ ์˜ˆ๋กœ ๋“ค์–ด ๋ณด๊ฒ ๋‹ค.

5 1
3
1
5
3

5์นธ์œผ๋กœ ๋‚˜๋‰˜์–ด ์žˆ๋Š”  ํ™”๋ฉด์— ๊ธธ์ด๊ฐ€ 1์ธ ๋ฐ”๊ตฌ๋‹ˆ๊ฐ€ ์žˆ์„ ๋•Œ, ์‚ฌ๊ณผ๊ฐ€ 1 -> 5 -> 3์˜ ์œ„์น˜์—์„œ ๋–จ์–ด์งˆ ๋•Œ, ์˜ค๋ฅธ์ชฝ ๋˜๋Š” ์™ผ์ชฝ์œผ๋กœ ๋ฐ”๊ตฌ๋‹ˆ๋ฅผ ์›€์ง์—ฌ ์‚ฌ๊ณผ๋ฅผ ๋ชจ๋‘ ๋‹ด์„ ์ˆ˜ ์žˆ๋Š” ์ตœ์†Ÿ๊ฐ’์„ ๊ตฌํ•ด์•ผ ํ•œ๋‹ค.

 

์Šคํฌ๋ฆฐ์— ๋”ฐ๋ผ์„œ ๊ฐ€์žฅ ์™ผ์ชฝ์„ 1, ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ์„ 5๋ฅผ ์ฒ˜์Œ์— ๋ฐ”๊ตฌ๋‹ˆ๋Š” ๋ฌด์กฐ๊ฑด ์œ„์น˜ 1์—์„œ ์‹œ์ž‘ํ•œ๋‹ค.

์ฒ˜์Œ์˜ 1์€ ์ฒ˜์Œ ์œ„์น˜ 1 ๊ทธ๋Œ€๋กœ๋ผ ์›€์ง์ด์ง€ ์•Š๋Š”๋‹ค.

5์˜ ๊ฒฝ์šฐ๋Š” ์˜ค๋ฅธ์ชฝ์œผ๋กœ 4์นธ ์›€์ง์—ฌ ์ค€๋‹ค.

3์˜ ๊ฒฝ์šฐ๋Š” ์™ผ์ชฝ์œผ๋กœ 2์นธ ์›€์ง์—ฌ ์ค€๋‹ค.

๊ทธ๋ž˜์„œ ์ •๋‹ต์€ 6๊ฐœ๊ฐ€ ๋œ๋‹ค.

 

๋ฐ”๊ตฌ๋‹ˆ๋ฅผ ์–ด๋–ค ๋ฐฉํ–ฅ์œผ๋กœ ์›€์ง์ด๊ฒŒ ํ• ์ง€๊ฐ€ ์ค‘์š”ํ•˜๋‹ค.

๋ฐ”๊ตฌ๋‹ˆ๋ฅผ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์›€์ง์˜€์„ ๋•Œ๋ž‘, ์™ผ์ชฝ์œผ๋กœ ์›€์ง์ผ ๋•Œ์—์„œ ๋” ์ ์€ case๋ฅผ ๋”ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

 

 

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

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

fun main() = with(BufferedReader(InputStreamReader(System.`in`))) {
    val (size, basket) = readLine().split(" ").map { it.toInt() }
    val apples = readLine().toInt()

    var basketFront = 1
    var basketBack = basket
    var answer = 0
    for (i in 0 until apples) {
        val fallingLocation = readLine().toInt()

        if (fallingLocation > basketBack) {
            while (fallingLocation != basketBack) {
                basketBack++
                basketFront++

                answer++
            }
        } else if (fallingLocation < basketFront) {
            while (fallingLocation != basketFront) {
                basketFront--
                basketBack--

                answer++
            }
        }
    }

    println(answer)
}

 

๋ฌธ์ œ ํ’€์ด

์ž…๋ ฅ๊ฐ’์„ ์ž…๋ ฅ๋ฐ›๊ณ  ๋‚˜์„œ basket๋งŒํผ ์ดˆ๊ธฐ ์‹œ์ž‘ ๋ถ€๋ถ„์„ 1๋กœ ์ง€์ •ํ•˜๊ณ  ๋ฐ”๊ตฌ๋‹ˆ์˜ ๋ ๋ถ€๋ถ„์€ ๋ฐ”๊ตฌ๋‹ˆ์˜ ๋„ˆ๋น„๋กœ ์ง€์ •ํ•ด ์ค€๋‹ค.

์‚ฌ๊ณผ๊ฐ€ ๋–จ์–ด์งˆ ์œ„์น˜์— ๋งž๊ฒŒ ๋ฆฌ์ŠคํŠธ์˜ ์œ„์น˜๋ฅผ ๋ณ€๊ฒฝํ•ด ์ค€๋‹ค.

๋ฐ”๊ตฌ๋‹ˆ๋ฅผ ์•ž์œผ๋กœ ์˜ฎ๊ธธ ๋•Œ์™€ ๋’ค๋กœ ์˜ฎ๊ธธ ๋•Œ๋ฅผ ๊ฐ๊ฐ ๊ตฌํ˜„ํ•ด ์ค€๋‹ค.๋ฐ”๊ตฌ๋‹ˆ๋ฅผ ์˜ฎ๊ธธ ๋•Œ๋Š” ์–‘ ๋์˜ ๊ฐ’์„ ๋บ๋‹ค๊ฐ€ ๋ฐ˜๋Œ€ ๋ฐฉํ–ฅ์— ๋„ฃ์–ด ์ฃผ๋Š” ๋ฐฉ์‹์ด๋‹ค.์Šคํฌ๋ฆฐ์„ ๋ฒ—์–ด๋‚˜๋ฉด ์•ˆ ๋˜๊ธฐ ๋•Œ๋ฌธ์— while๋ฌธ์— ์กฐ๊ฑด์„ ์ถ”๊ฐ€ํ•ด ์ค€๋‹ค. 

 

 

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

์ฒ˜์Œ์—๋Š” deque๋ฅผ ์“ฐ๋ ค๊ณ  ํ–ˆ๋‹ค๊ฐ€ get์ด ์•ˆ ๋ผ์„œ mutableList๋กœ ๊ตฌํ˜„ํ•ด ์ฃผ์—ˆ๋‹ค.

๋ฐ”๊ตฌ๋‹ˆ๋ฅผ ์•ž ๋˜๋Š” ๋’ค๋กœ ์ด๋™ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์ž˜ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค.

728x90