๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ฏ | ๋ฐฑ์ค€/๐Ÿ˜ | Gold

[Kotlin, G3] ๋ฐฑ์ค€ 2812๋ฒˆ ํฌ๊ฒŒ ๋งŒ๋“ค๊ธฐ

by immgga 2024. 7. 29.

์ถœ์ฒ˜: unsplash.com

 

ํฌ๊ฒŒ ๋งŒ๋“ค๊ธฐ(2812๋ฒˆ)

Gold 3

#์ž๋ฃŒ ๊ตฌ์กฐ #๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜ #์Šคํƒ

 

๋ฌธ์ œ ๋‚ด์šฉ

 

๋ฌธ์ œ ์ ‘๊ทผ

n์ž๋ฆฌ์˜ ์ˆซ์ž๊ฐ€ ์ฃผ์–ด์ง€๊ณ , ์ˆซ์ž์—์„œ k๊ฐœ์˜ ์ˆซ์ž๋ฅผ ๋บ€ ์ˆซ์ž์˜ ๊ฒฝ์šฐ๋“ค ์ค‘, ๊ฐ€์žฅ ํฐ ๊ฐ’์„ ์ถœ๋ ฅํ•ด์•ผ ํ•œ๋‹ค.

๊ฐ€์žฅ ํฐ ๊ฐ’์„ ์–ป๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋งจ ์•ž์ž๋ฆฌ์˜ ์ˆ˜๊ฐ€ ์ œ์ผ ํฌ๊ณ , ๋งˆ์ง€๋ง‰ ์ž๋ฆฟ์ˆ˜๊ฐ€ ์ œ์ผ ์ž‘์€ ๋‚ด๋ฆผ์ฐจ์ˆœ์˜ ์ˆซ์ž์— ๊ฐ€๊นŒ์›Œ์ ธ์•ผ ์ œ์ผ ์ปค์ง„๋‹ค.

stack์— ๊ฐ’์„ ๋„ฃ์œผ๋ฉด์„œ ๋“ค์–ด๊ฐ„ ๊ฐ’๋ณด๋‹ค ๋” ํฐ ์ˆ˜๊ฐ€ ๋“ค์–ด์˜ค๋ฉด stack์— ๋“ค์–ด๊ฐ„ ์ˆซ์ž๋ฅผ ๋นผ๋Š” ๋ฐฉ์‹์œผ๋กœ stack์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

k๋ฒˆ ์ˆซ์ž๋ฅผ ์ง€์šฐ๊ณ  ๋‚˜๋ฉด ๋‚˜๋จธ์ง€ ์ˆซ์ž๋“ค์€ ๊ทธ๋Œ€๋กœ stack์— ๋„ฃ์–ด์„œ ์ถœ๋ ฅํ•ด ์ฃผ๋ฉด ๋œ๋‹ค.

 

 

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

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

private val stack = Stack<Int>()

fun main() = with(BufferedReader(InputStreamReader(System.`in`))) {
    val (addCnt, removeCnt) = readLine().split(" ").map { it.toInt() }
    val number = readLine().map { it.digitToInt() }

    var toRemoveCnt = 0
    for (i in number.indices) {
        while (stack.isNotEmpty() && toRemoveCnt != removeCnt && stack.peek() < number[i]) {
            stack.pop()
            toRemoveCnt++
        }

        if (stack.size < addCnt - removeCnt) stack.add(number[i])
    }

    println(stack.joinToString(""))
}

 

๋ฌธ์ œ ํ’€์ด

number์— ์ž…๋ ฅ๋ฐ›์€ ์ˆซ์ž๋ฅผ listํ˜•ํƒœ๋กœ ๋ฐ›์•„ ์ค€๋‹ค.

์‚ญ์ œํ•œ ์ˆซ์ž์˜ ๊ฐœ์ˆ˜๋ฅผ ์…€ toRemoveCnt๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

 

1. ์ผ๋‹จ ์ฒ˜์Œ์—๋Š” stack์ด ๋น„์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ฒซ ๋ฒˆ์งธ ์ˆซ์ž๋ฅผ ๋„ฃ์–ด ์ค€๋‹ค. ๋‚˜์ค‘์—๋Š” stack์˜ size๊ฐ€ ๋‚˜์™€์•ผ ํ•˜๋Š” ๊ฒฐ๊ณผ ์ž๋ฆฟ์ˆ˜๋ฅผ ์˜ค๋ฒ„ํ•˜์ง€ ์•Š์„ ๋•Œ๋งŒ ๊ฐ’์„ ๋„ฃ์–ด ์ค€๋‹ค.

2. ๋‘ ๋ฒˆ์งธ ์ˆซ์ž๋ถ€ํ„ฐ๋Š” ๋“ค์–ด์˜ค๋Š” ์ˆซ์ž๊ฐ€ stack์— ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ๋“ค์–ด๊ฐ„ ๊ฐ’๋ณด๋‹ค ํฌ๋‹ค๋ฉด ๋ฐ˜๋ณตํ•ด์„œ stack์—์„œ ์ง€์›Œ ์ฃผ๊ณ , ์‚ญ์ œ ์นด์šดํŠธ๋ฅผ ๋Š˜๋ฆฐ๋‹ค.

์ด 2๊ฐ€์ง€์˜ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜๋‹ค ๋ณด๋ฉด ์ตœ์ข… ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด ์„ค๋ช…ํ•ด ๋ณด๊ฒ ๋‹ค.

4177252841์˜ ์ˆซ์ž์—์„œ 4๊ฐœ์˜ ์ˆซ์ž๋ฅผ ๋บ€ ์ˆ˜๋“ค ์ค‘ ๊ฐ€์žฅ ํฐ ๊ฐ’์„ ์ฐพ์•„ ์ฃผ์–ด์•ผ ํ•œ๋‹ค.

 

๋จผ์ € 4๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค.

์‚ฌ์ง„ 1-1

์‚ฌ์ง„ 1-1) stack์ด ๋น„์–ด ์žˆ์œผ๋ฏ€๋กœ 4๋Š” ํ”„๋ฆฌํŒจ์Šค๋กœ stack์— ๋“ค์–ด๊ฐ€๊ณ , ๋‹ค์Œ ๋ฐ์ดํ„ฐ์ธ 1์€ 4๋ณด๋‹ค ์ž‘์€ ๊ฐ’์ด๊ธฐ ๋•Œ๋ฌธ์— ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.

์‚ฌ์ง„ 1-2

์‚ฌ์ง„ 1-2) 4์™€ 1์ด ๋“ค์–ด๊ฐ„ ๋‹ค์Œ์—๋Š” 7์˜ ์ฐจ๋ก€์ด๋‹ค.

stack์— ๋งˆ์ง€๋ง‰์— ๋“ค์–ด๊ฐ„ ๊ฐ’์ธ 1๋ณด๋‹ค 7์ด ๋” ์ž‘๊ธฐ ๋•Œ๋ฌธ์— stack์—์„œ 1์„ pop์œผ๋กœ ์ง€์šด๋‹ค.

๋‹ค์Œ ๊ฐ’์ธ 4๋„ 7๋ณด๋‹ค ์ž‘๊ธฐ ๋•Œ๋ฌธ์— stack์—์„œ 4๋ฅผ pop์œผ๋กœ ์ง€์šด๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ด ์ง€์šด ์ˆซ์ž์˜ ๊ฐœ์ˆ˜๋Š” 2๊ฐœ๊ฐ€ ๋œ๋‹ค.

๋นˆ stack์— 7์„ ๋„ฃ์–ด ์ค€๋‹ค.

์‚ฌ์ง„ 1-3

์‚ฌ์ง„ 1-3) ๋‹ค์Œ์— ๋“ค์–ด๊ฐ„ 7์€ stack์— ๋“ค์–ด๊ฐ„ ๋งˆ์ง€๋ง‰ ๊ฐ’์ธ 7๊ณผ ๊ฐ’์ด ๊ฐ™๊ธฐ ๋•Œ๋ฌธ์— stack์— ๋„ฃ๋Š”๋‹ค.

๋‹ค์Œ ๊ฐ’์ธ 2๋Š” 7๋ณด๋‹ค ์ž‘๊ธฐ ๋•Œ๋ฌธ์— stack์— ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ 5์˜ ์ฐจ๋ก€๊ฐ€ ๋˜๋ฉด 5๋ณด๋‹ค ์ž‘์€ 2๋Š” pop ๋˜๊ณ , 7์€ 5๋ณด๋‹ค ํฌ๊ธฐ ๋•Œ๋ฌธ์— pop ๋˜์ง€ ์•Š๋Š”๋‹ค(์ง€์šด ์ˆซ์ž์˜ ๊ฐœ์ˆ˜๋Š” 3๊ฐœ).

์‚ฌ์ง„ 1-4

์‚ฌ์ง„ 1-4) ๋‹ค์Œ์œผ๋กœ ๋“ค์–ด๊ฐ„ 2๋Š” 5๋ณด๋‹ค ์ž‘๊ธฐ ๋•Œ๋ฌธ์— stack์— ๋“ค์–ด์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

๋‹ค์Œ ๊ฐ’์ธ 8์˜ ์ฐจ๋ก€์ด๋‹ค.

ํ˜„์žฌ stack์— ๋งˆ์ง€๋ง‰์œผ๋กœ ๋“ค์–ด๊ฐ„ 2๋Š” 8๋ณด๋‹ค ์ž‘๊ธฐ ๋•Œ๋ฌธ์— 2๋ฅผ stack์—์„œ ์ง€์šด๋‹ค(์ง€์ˆœ ์ˆซ์ž์˜ ๊ฐœ์ˆ˜๋Š” 4๊ฐœ).

๋‹ค์Œ stack์˜ ๋งˆ์ง€๋ง‰์œผ๋กœ ๋“ค์–ด๊ฐ„ ์ˆ˜์ธ 5๋Š” 8๋ณด๋‹ค ์ž‘์ง€๋งŒ ์ง€์ˆœ ์ˆซ์ž๊ฐ€ ๋ฌธ์ œ์—์„œ ์›ํ•˜๋Š” 4๊ฐœ๊ฐ€ ๋ชจ๋‘ ์ฑ„์›Œ์กŒ๊ธฐ ๋•Œ๋ฌธ์— 5๋Š” pop ๋˜์ง€ ์•Š๊ณ , 8์ด ๊ทธ๋Œ€๋กœ stack์— ๋“ค์–ด๊ฐ„๋‹ค.

์‚ฌ์ง„ 1-5

์‚ฌ์ง„ 1-5) 8 ๋‹ค์Œ์œผ๋กœ ๋‚จ์€ ์ˆซ์ž์ธ 4, 1์ด ์ฐจ๋ก€๋Œ€๋กœ stack์— ๋“ค์–ด๊ฐ€๋ฉด์„œ ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์•„์ง„๋‹ค.

์ด์ œ stack list 7, 7, 5, 8, 4, 1์„ ์ˆซ์ž๋กœ ๋ฐ”๊ฟ”์„œ ์ถœ๋ ฅํ•˜๋ฉด ๋ฌธ์ œ์˜ ๋‹ต์ธ 775841๊ณผ ์ผ์น˜ํ•˜๊ฒŒ ๋œ๋‹ค.

 

 

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

์ฒ˜์Œ์—๋Š” ArrayDeque๋ฅผ ์ด์šฉํ•ด ์ˆœํ™˜ํ•˜๋ฉด์„œ ํ˜„์žฌ ๊ฐ’๊ณผ ๋‹ค์Œ ๊ฐ’์„ ๋น„๊ตํ•ด ๋‹ค์Œ ๊ฐ’์ด ํ˜„์žฌ ๊ฐ’๋ณด๋‹ค ํฌ๋‹ค๋ฉด ํ˜„์žฌ ๊ฐ’์„ ์ง€์šฐ๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•˜์˜€์ง€๋งŒ ์•„๋ž˜์˜ ๋ฐ˜๋ก€์—์„œ ๋ง‰ํžˆ๊ฒŒ ๋˜์—ˆ๋‹ค.

6 4
321123

output: 3213
answer: 3223

ํ˜„์žฌ ๊ฐ’๊ณผ ๋‹ค์Œ์˜ ๊ฐ’์„ ๋น„๊ตํ•˜๋‹ค ๋ณด๋‹ˆ ์ตœ์ ์˜ ๊ฐ’์„ ์ฐพ์„ ์ˆ˜ ์—†์–ด์„œ ์ฒซ ๋ฒˆ์งธ 1์ด ๋‚จ์•„ ์ตœ์ ๊ฐ’๋ณด๋‹ค ์ž‘์€ ๊ฐ’์ด ๋‚˜์˜ค๊ฒŒ ๋˜์—ˆ๋‹ค.

์นดํ…Œ๊ณ ๋ฆฌ๊ฐ€ stack์ด๋ผ์„œ stack์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ๋„ฃ๊ณ  ๋ฌธ์ œ๋ฅผ ํ’€ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ƒ๊ฐํ•ด ๋ดค์ง€๋งŒ ์ƒ๊ฐ๋‚˜๋Š” ๊ฒŒ ์—†์—ˆ๋‹ค.

๊ฒฐ๊ตญ ํ’€์ด๋ฅผ ์ฐธ๊ณ ํ•ด์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธด ํ–ˆ์ง€๋งŒ, stack์— ๊ฐ’์„ ๊ตฌํ•จ๊ณผ ๋™์‹œ์— ์ •๋‹ต์— ์„œ์„œํžˆ ๊ฐ€๊นŒ์›Œ์ง€๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„์ด ๋˜๋”๋ผ.

ํ’€์ด๋ฅผ ๋ณด๊ธฐ ์ „๊นŒ์ง€๋Š” stack์„ 2๊ฐœ๋ฅผ ๋งŒ๋“ค์–ด์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผ ํ•˜๋Š” ์ค„ ์•Œ์•˜๋‹ค.

stack์„ ์ด๋ ‡๊ฒŒ๋„ ์จ๋จน์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ๊ฒŒ ํ•ด ์ค€ ๋ฌธ์ œ.

728x90