본문 바로가기

알고리즘

스택) 백준 9935번: 문자열 폭발 코틀린

반응형

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

 

fun main(args: Array<String>) {
    val br =
            BufferedReader(InputStreamReader(System.`in`))
    val text = br.readLine()
    val input = br.readLine()
    val sb = StringBuffer()
    val st = Stack<Char>()

    for (i in text.length - 1 downTo 0) {
        st.push(text[i])
        if (st.size >= input.length && st.peek() == input[0]) {
            if (input.length == 1) {
                st.pop()
            }
            for (j in 1 until input.length) {
                if (st.size - 1 - j < 0) {
                    break
                }
                if (st[st.size - 1 - j] != input[j]) {
                    break
                }
                if (j == input.length - 1) {
                    for (k in input.indices) {
                        st.pop()
                    }
                }
            }
        }
    }
    val size = st.size
    if (size == 0) {
        println("FRULA")
    } else {
        for (i in 0 until size) {
            sb.append(st.pop())
        }
        println(sb)
    }
}

 

반응형