-
[백준][Kotlin]1541번 잃어버린 괄호백준 2023. 3. 21. 21:57728x90
해당 문제의 주요 포인트는 -의 존재 여부를 파악하는 것 입니다.
문제를 잘보면 괄호를 1번만 쳐서 식을 완성하라는 말이 없기 때문에 -가 나오기 전까지는 해당 양수를 더합니다.
그리고 - 가 나온 시점부터는 결과값에서 해당 양수를 빼주면 됩니다.
왜냐하면 -가 나온 시점부터는 괄호를 통해서 모든 수를 빼는 형식으로 만들 수 있기 때문입니다.
ex) 55-50+40+30-20-20 = 35
-> 55-(50+40+30)-(20)-(20) = -105
하기는 제가 작성한 코드와 제출 결과 입니다.
import java.io.BufferedReader import java.io.BufferedWriter import java.io.InputStreamReader import java.io.OutputStreamWriter import java.util.* fun main() { val br = BufferedReader(InputStreamReader(System.`in`)) //var bw = BufferedWriter(OutputStreamWriter(System.out)) var st = StringTokenizer(br.readLine()) var N = st.nextToken().toString() var numList = ArrayList<String>() var temp = "" N.forEach { if(it == '+'){ if(temp!=""){ numList.add(temp) temp = "" } numList.add("+") } if(it == '-'){ if(temp!=""){ numList.add(temp) temp = "" } numList.add("-") } if(it in ('0' .. '9')){ temp += it.toString() } } if(temp != "") numList.add(temp) var result = 0 var check = true // true 일때 plus 값 증가 for(i in 0 .. numList.size-1){ if(numList[i] == "-") { check = false continue } if(numList[i] == "+") continue if(check) { result += numList[i].toInt() } else { result -= numList[i].toInt() } } println(result) //bw.flush() //bw.close() }
'백준' 카테고리의 다른 글
[백준][Kotlin] 1456번 거의 소수 (1) 2023.03.22 [백준][Kotlin]1929번 소수 구하기 (0) 2023.03.22 [백준][Kotlin]1931번 회의실 배정 (0) 2023.03.21 [백준][Kotlin]1744번 수 묶기 (0) 2023.03.21 [백준][Kotlin]1715번 카드 정렬하기 (0) 2023.03.21