Post

[백준/코틀린] 9935번: 문자열 폭발

골드 4

링크

9935번: 문자열 폭발

풀이

StringBuilder스택처럼 활용하여 문자를 하나씩 처리합니다.

스택의 마지막 부분이 폭발 문자열과 같아지는 순간,
해당 길이만큼 스택에서 제거합니다.
이후에도 스택에는 아직 처리되지 않은 문자열만 남아 있으므로,
새롭게 이어진 부분에서 발생하는 폭발도 자연스럽게 처리됩니다.

코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
fun main() {
    val a = readln()
    val b = readln()
    val stack = StringBuilder()

    a.forEach {
        stack.append(it)
        if (stack.length >= b.length &&
            stack.substring(stack.length - b.length, stack.length) == b
        ) {
            stack.setLength(stack.length - b.length)
        }
    }

    println(
        if (stack.isEmpty()) "FRULA"
        else stack.toString()
    )
}

This post is licensed under CC BY 4.0 by the author.