본문 바로가기

알고리즘(w.KOTLIN)/그리디(Greedy)

[백준][코틀린][1541] 잃어버린 괄호

728x90

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

 

1541번: 잃어버린 괄호

첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다

www.acmicpc.net

문제 풀이

1. 입력된 문자열을 "-" 기준으로 나눈다.

2. 나누어진 문자열을 "+" 기준으로 나누고 값을 합하여 list 에 저장한다.

3. result 에 list[0] 값을 넣고 list 를 1 부터 마지막 index 까지 탐색하여 result -= list[index] 로 업데이트 한다.

4. result 를 출력한다.

코드

import java.io.*

fun main(args: Array<String>) {
    val br = BufferedReader(InputStreamReader(System.`in`))
    val list = mutableListOf<Int>()

    br.readLine().split("-").forEach { str ->
        var sum = 0
        str.split("+").forEach { s ->
            sum += s.toInt()
        }

        list.add(sum)
    }

    var result = list[0]

    for (i in 1 until list.size) {
        result -= list[i]
    }

    println(result)
}
728x90