KotlinAlgorithm#8 (BOJ1935)

박채빈·2021년 10월 22일
0

KotlinAlgorithm

목록 보기
8/28
post-thumbnail

BOJ1935 후기표기식2

링크

코드

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

fun main() {
    val br = BufferedReader(InputStreamReader(System.`in`))
    val n = br.readLine().toInt()

    val stack = Stack<Double>()
    val prefix = br.readLine()
    val numArray = IntArray(n)
    repeat(n) {numArray[it] = br.readLine().toInt()}

    repeat(prefix.length) {
        val ch = prefix[it]
        if(ch in 'A'..'Z') {
            val num = numArray[ch - 'A']
            stack.push(num.toDouble())
        }
        else {
            val num1 = stack.pop()
            val num2 = stack.pop()

            when(ch) {
                '+' -> stack.push(num2 + num1)
                '-' -> stack.push(num2 - num1)
                '*' -> stack.push(num2 * num1)
                '/' -> stack.push(num2 / num1)
            }
        }
    }
    println(String.format("%.2f", stack.pop()))
}
profile
안드로이드 개발자

0개의 댓글