KotlinAlgorithm#9 (BOJ10799)

박채빈·2021년 10월 22일
0

KotlinAlgorithm

목록 보기
9/28
post-thumbnail

BOJ10799 쇠막대기

링크

코드

noStack : 스택 안쓰고 괄호 갯수만 세준거
useStack : 실제로 스택에 넣어가면서 센거

import java.io.*
import java.util.*

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

    val str = br.readLine()
    var openBracket = 0
    var result = 0

    repeat(str.length) {
        val ch = str[it]

        if(ch == '(') {
            openBracket++
        }
        else {
            openBracket--

            if(str[it-1] == '(')    result += openBracket
            else    result++
        }
    }

    bw.write("$result\n")
    bw.flush()
    bw.close()
    br.close()
}

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

    val str = br.readLine()
    val stack = Stack<Char>()
    var result = 0

    repeat(str.length) {
        val ch = str[it]

        if(ch == '(') {
            stack.push('(')
        }
        else {
            stack.pop()

            if(str[it-1] == '(')    result += stack.size
            else    result++
        }
    }

    bw.write("$result\n")
    bw.flush()
    bw.close()
    br.close()
}

fun main() {
    noStack()
    useStack()
}
profile
안드로이드 개발자

0개의 댓글