๋ฌธ์
4๊ฐ์ ๊ธฐํธ โ(โ, โ)โ, โ[โ, โ]โ๋ฅผ ์ด์ฉํด์ ๋ง๋ค์ด์ง๋ ๊ดํธ์ด ์ค์์ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด์ด๋ ๋ค์๊ณผ ๊ฐ์ด ์ ์๋๋ค.
- ํ ์์ ๊ดํธ๋ก๋ง ์ด๋ฃจ์ด์ง โ()โ์ โ[]โ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด์ด๋ค.
- ๋ง์ผ X๊ฐ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด์ด๋ฉด โ(X)โ์ด๋ โ[X]โ๋ ๋ชจ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด์ด ๋๋ค.
- X์ Y ๋ชจ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด์ด๋ผ๋ฉด ์ด๋ค์ ๊ฒฐํฉํ XY๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด์ด ๋๋ค.
์๋ฅผ ๋ค์ด โ(()[[]])โ๋ โ(())[][]โ ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด์ด์ง๋ง โ([)]โ ๋ โ(()()[]โ ์ ๋ชจ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด์ด ์๋๋ค. ์ฐ๋ฆฌ๋ ์ด๋ค ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด X์ ๋ํ์ฌ ๊ทธ ๊ดํธ์ด์ ๊ฐ(๊ดํธ๊ฐ)์ ์๋์ ๊ฐ์ด ์ ์ํ๊ณ ๊ฐ(X)๋ก ํ์ํ๋ค.
- โ()โ ์ธ ๊ดํธ์ด์ ๊ฐ์ 2์ด๋ค.
- โ[]โ ์ธ ๊ดํธ์ด์ ๊ฐ์ 3์ด๋ค.
- โ(X)โ ์ ๊ดํธ๊ฐ์ 2ร๊ฐ(X) ์ผ๋ก ๊ณ์ฐ๋๋ค.
- โ[X]โ ์ ๊ดํธ๊ฐ์ 3ร๊ฐ(X) ์ผ๋ก ๊ณ์ฐ๋๋ค.
- ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด X์ Y๊ฐ ๊ฒฐํฉ๋ XY์ ๊ดํธ๊ฐ์ ๊ฐ(XY)= ๊ฐ(X)+๊ฐ(Y) ๋ก ๊ณ์ฐ๋๋ค.
์๋ฅผ ๋ค์ด โ(()[[]])([])โ ์ ๊ดํธ๊ฐ์ ๊ตฌํด๋ณด์. โ()[[]]โ ์ ๊ดํธ๊ฐ์ด 2 + 3ร3=11 ์ด๋ฏ๋ก โ(()[[]])โ์ ๊ดํธ๊ฐ์ 2ร11=22 ์ด๋ค. ๊ทธ๋ฆฌ๊ณ โ([])โ์ ๊ฐ์ 2ร3=6 ์ด๋ฏ๋ก ์ ์ฒด ๊ดํธ์ด์ ๊ฐ์ 22 + 6 = 28 ์ด๋ค.
์ฌ๋ฌ๋ถ์ด ํ์ด์ผ ํ ๋ฌธ์ ๋ ์ฃผ์ด์ง ๊ดํธ์ด์ ์ฝ๊ณ ๊ทธ ๊ดํธ๊ฐ์ ์์์ ์ ์ํ๋๋ก ๊ณ์ฐํ์ฌ ์ถ๋ ฅํ๋ ๊ฒ์ด๋ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ๊ดํธ์ด์ ๋ํ๋ด๋ ๋ฌธ์์ด(์คํธ๋ง)์ด ์ฃผ์ด์ง๋ค. ๋จ ๊ทธ ๊ธธ์ด๋ 1 ์ด์, 30 ์ดํ์ด๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ๊ทธ ๊ดํธ์ด์ ๊ฐ์ ๋ํ๋ด๋ ์ ์๋ฅผ ์ถ๋ ฅํ๋ค. ๋ง์ผ ์ ๋ ฅ์ด ์ฌ๋ฐ๋ฅด์ง ๋ชปํ ๊ดํธ์ด์ด๋ฉด ๋ฐ๋์ 0์ ์ถ๋ ฅํด์ผ ํ๋ค.
ํ์ด
import java.util.*
fun main() = with(System.`in`.bufferedReader()) {
val input = readLine()
var result = 0
var tmp = 1
val stack = ArrayDeque<Int>()
for(i in 0..input.length-1) {
when(input[i]) {
'(' -> {
stack.push(2)
tmp *= 2
}
'[' -> {
stack.push(3)
tmp *= 3
}
')' -> {
if(stack.isEmpty() || stack.peek() != 2) {
result = 0
break
}
// ์ง์ ๊ฐ์ด ๋งคํ ๊ฐ์ด๋ผ๋ฉด, ๊ฒฐ๊ณผ๋ฅผ ๋ ํด์ค๋ค.
if(input[i-1] == '(') {
result += tmp
}
tmp /= stack.pop()
}
']' -> {
if(stack.isEmpty() || stack.peek() != 3) {
result = 0
break
}
// ์ง์ ๊ฐ์ด ๋งคํ ๊ฐ์ด๋ผ๋ฉด, ๊ฒฐ๊ณผ๋ฅผ ๋ ํด์ค๋ค.
if(input[i-1] == '[') {
result += tmp
}
tmp /= stack.pop()
}
}
}
// ์์ธ์ฒ๋ฆฌ
if(!stack.isEmpty()) result = 0
println(result)
}
'Programming > Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] ์๋ฐ์ ์ด์ง ์ฐ์ฐ(๋นํธ ์ฐ์ฐ) (0) | 2025.04.06 |
---|---|
[Java] Softeer Level 2- "GPT์ ์ซ์ ๋น๊ต" ์๋ฐ ํ์ด (0) | 2025.04.06 |
[Kotlin] ๋ฐฑ์ค 14888 - ์ฐ์ฐ์ ๋ผ์๋ฃ๊ธฐ(์ฌ๊ท์์ ํ์ DFS, ๋ฐฑํธ๋ํน) (1) | 2025.03.09 |
[Kotlin] ๋ฐฑ์ค 1978 ์์ ์ฐพ๊ธฐ (1) | 2025.03.08 |
[Kotlin] ๋ฐฑ์ค 1292 - ์ฝ๊ฒ ํธ๋ ๋ฌธ์ (1) | 2024.11.13 |