[๋ฐฑ์ค] (Swift) 9012๋ฒ - ๊ดํธ
๋ฌธ์ ๋งํฌ
https://www.acmicpc.net/problem/9012
9012๋ฒ: ๊ดํธ
๊ดํธ ๋ฌธ์์ด(Parenthesis String, PS)์ ๋ ๊ฐ์ ๊ดํธ ๊ธฐํธ์ธ ‘(’ ์ ‘)’ ๋ง์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ ๋ฌธ์์ด์ด๋ค. ๊ทธ ์ค์์ ๊ดํธ์ ๋ชจ์์ด ๋ฐ๋ฅด๊ฒ ๊ตฌ์ฑ๋ ๋ฌธ์์ด์ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด(Valid PS, VPS)์ด๋ผ๊ณ
www.acmicpc.net
๋ด๊ฐ ํผ ํ์ด
์ด๋ฐ์ ์ ๋ ฅ๋ฐ๋ line๋ค์ array์ ๋ฃ์ ํ, rightValue ๋ผ๋ ์๋ก์ด array์ (, (, ), ์ด๋ ๊ฒ ํ๋์ฉ ๋ฃ์ด์ฃผ๊ณ , '('์ ')' ๋ก ์์ด ์ด๋ฃจ์ด์ง๋ฉด ์์ ์ฃผ๊ณ , ์ต์ข ์ ์ผ๋ก rightValue ๋ฐฐ์ด์ ๊ธธ์ด๊ฐ '0'์ด ๋๋ฉด YES๋ฅผ ์ถ๋ ฅํ๋ ๋ฐฉ์์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํ๋ ค๊ณ ํ๋ค. (์์ ์ ํ์ด์ฌ์ผ๋ก ์ฝํ ๋ฅผ ๋ณผ๋๋ ์ด๋ ๊ฒ ํ์๋ค.) ๊ทผ๋ฐ,,, ์์ธ์ง swift๋ pop๊ธฐ๋ฅ์ด ํ์ด์ฌ์ฒ๋ผ popleft, pop(0) ์ฒ๋ผ ์ผ์ชฝ ์ค๋ฅธ์ชฝ ์๋ฌด๋ ๊ฒ๋ pop ๋๋ ๊ธฐ๋ฅ์ด ์์ฐ์ค๋ฝ์ง ๋ชปํ ๊ฒ ๊ฐ์๋ค. (์์ง swift์ด๋ณด ๋ผ์ ๊ทธ๋ฐ๊ฑธ ์๋ ์์ด์. ์ด์ํ๋ค...)
์ด์จ๋ ๊ทธ๋์, countํด์ฃผ๋ ๋ฐฉ์์ผ๋ก ์ฝ๋๋ฅผ ์งฐ๋ค.
import Foundation
let n = Int(readLine()!)!
for _ in 0..<n {
let line = readLine()!
var count = 0
for char in line{
if char == "(" {
count += 1
} else if char == ")" {
count -= 1
if count < 0 {
break
}
}
}
print(count==0 ? "YES" : "NO")
}