상세 컨텐츠

본문 제목

Baekjoon(Kotlin) - 9935. 문자열 폭발

Problems(Kotlin)/Baekjoon

by KDLiam 2023. 9. 19. 14:17

본문

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

 

9935번: 문자열 폭발

첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크거나 같고, 36보다 작거나 같다. 두 문자열은 모

www.acmicpc.net

 

[ RESULT ]

import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter
import java.util.PriorityQueue

fun main() {
    val br = BufferedReader(InputStreamReader(System.`in`))
    val bw = BufferedWriter(OutputStreamWriter(System.out))

    val input_str = br.readLine().toString()
    val boom_str = br.readLine().toString()

    bw.write(explodeString(input_str, boom_str)).toString()

    br.close()
    bw.flush()
    bw.close()
}

fun explodeString(inputStr: String, boomStr: String): String {
    val stack = mutableListOf<Char>()

    for (char in inputStr) {
        stack.add(char)

        if (char == boomStr.last() && stack.takeLast(boomStr.length).joinToString("") == boomStr) {
            repeat(boomStr.length) { stack.removeAt(stack.size - 1) }
        }
    }

    val result = stack.joinToString("")

    return result.ifEmpty { "FRULA" }
}

 

 

관련글 더보기