๐ ๋ฌธ์
๐ง ์์ด๋์ด
"()"์ ๋ชจ๋ '*'๋ก ๋ฏธ๋ฆฌ ๋์นํ๋ค.
๐ ํ์ด 1. Kotlin Code
')' ์ ๋ง๋ ๋๋ง๋ค ์ด์ '(' ๊น์ง pop ํ๋ฉฐ *์ ๊ฐ์๋ฅผ ์นด์ดํ ํ๋ ๋ฌด์ํ ๋ฐฉ๋ฒ์ผ๋ก ํ์ดํ๋ค.
import java.io.BufferedReader
import java.io.InputStreamReader
import java.util.*
fun main() {
val bufferedReader = BufferedReader(InputStreamReader(System.`in`))
val str = bufferedReader.readLine().replace("()", "*")
val stack = Stack<String>()
var answer = 0
for (char in str) {
when (char) {
'*' -> {
if (stack.isEmpty()) continue
stack.push(char.toString())
}
'(' -> {
stack.push(char.toString())
}
')' -> {
var starCnt = 0
while (stack.isNotEmpty()) {
if (stack.peek() != "(") {
val star = stack.pop()
starCnt += star.length
} else {
stack.pop()
stack.push("*".repeat(starCnt))
answer += (starCnt + 1)
break
}
}
}
}
}
print(answer)
}
๐ ํ์ด 2. Kotlin Code
stack ์ '('์ด ๋์ฌ ๋๋ง๋ค ๋ฌด์กฐ๊ฑด ๋ด์๋๋ค.
stack ์ ๋ด๊ธด '(' ์ ์๋ ๊ณง '๋ง๋๊ธฐ์ ์'๋ค.
๋ฐ๋ผ์, '*'์ ๋ง๋ ๋๋ง๋ค ์คํ์ ๋ด๊ธด ์์ ์(๊ดํตํ ๋ง๋๊ธฐ์ ์) ๋งํผ์ ๋ํด์ฃผ๋ฉด ๋ ์ด์ (*)๋ฅผ ์ด์ ์๊ธด ๋ง๋ ์กฐ๊ฐ์ ์ผ์ชฝ์ ์๋ ๊ฒ๋ค์ ๊ฐ์๋ฅผ ๊ตฌํ ์ ์๋ค.
')'๋ ๋ง๋๊ธฐ์ ๋์ ์๋ฏธํ๋ฏ๋ก ๋ง๋ ๋๋ง๋ค ๋ง๋ ๊ฐ์ +1 ํด์ฃผ๊ณ stack ์์ ๋ด๊ฒจ์๋ '('๋ฅผ ํ๋ ๋นผ์ค๋ค.
import java.io.BufferedReader
import java.io.InputStreamReader
import java.util.*
fun main() {
val bufferedReader = BufferedReader(InputStreamReader(System.`in`))
val str = bufferedReader.readLine().replace("()", "*")
val stack = Stack<Char>()
var answer = 0
for (char in str) {
when (char) {
'*' -> {
answer += stack.size // ๊ฑธ์ณ์๋ ๋ง๋ ๊ฐ์๋งํผ ์ถ๊ฐ
}
'(' -> {
stack.push('(')
}
')' -> {
answer++ // ๋ง๋์ ๋๋ถ๋ถ๋ง ์ถ๊ฐ
stack.pop() // ํ ๋ง๋๊ฐ ๋ฒ์ ๋ฐ์ผ๋ก ๋๋จ
}
}
}
print(answer)
}
'Algorithm > Algorithm (๋ฌธ์ ํ์ด)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 14499 ์ฃผ์ฌ์ ๊ตด๋ฆฌ๊ธฐ (0) | 2022.10.13 |
---|---|
[๋ฐฑ์ค] 11559 Puyo Puyo (2) | 2022.10.13 |
[๋ฐฑ์ค] 15686 ์นํจ ๋ฐฐ๋ฌ (1) | 2022.10.10 |
[๋ฐฑ์ค] 1504 ํน์ ํ ์ต๋จ๊ฒฝ๋ก (0) | 2022.10.07 |
[๋ฐฑ์ค] 18808 ์คํฐ์ปค ๋ถ์ด๊ธฐ (0) | 2022.10.06 |