youngjaeLee1026 2022. 4. 2. 20:47

1. ๋ฌธ์ œ

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2022-04-02 20 46 00

2. ์ž…์ถœ๋ ฅ

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2022-04-02 20 46 16

3. ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2022-04-02 20 46 30

4. ๋ฌธ์ œ ์„ค๊ณ„

  • ์—ด๋ฆฐ ๊ด„ํ˜ธ์˜ ๊ฒฝ์šฐ count๊ฐ’์„ ์ฆ๊ฐ€์‹œ์ผœ(stack push ์—ฐ์‚ฐ)์ฃผ๊ณ , ๋‹ซํžŒ ๊ด„ํ˜ธ์˜ ๊ฒฝ์šฐ count ๊ฐ’์„ ๊ฐ์†Œ์‹œ์ผœ(stack pop ์—ฐ์‚ฐ)
  • count ๊ฐ’์ด ์Œ์ˆ˜๊ฐ€ ๋˜๋Š” ๊ฒฝ์šฐ ์˜ฌ๋ฐ”๋ฅด์ง€ ๋ชปํ•œ ๊ด„ํ˜ธ์—ด์ด ๋˜๊ณ , ๊ด„ํ˜ธ์—ด์„ ๋ชจ๋‘ ์ˆœํšŒํ•˜๊ณ  ๋‚˜์„œ count๊ฐ’์ด 0์ด ์•„๋‹Œ ๊ฒฝ์šฐ๋„ ์˜ฌ๋ฐ”๋ฅด์ง€ ๋ชปํ•œ ๊ด„ํ˜ธ์—ด์ž„์„ ์•Œ ์ˆ˜ ์žˆ์Œ

5. ์ „์ฒด ์ฝ”๋“œ

//MARK: - ๊ด„ํ˜ธ

//MARK: - Framework
import Foundation

//MARK: - Function
func solution() -> Void {
    //MARK: - Input
    guard let str: String = readLine() else { return }
    var flag: Bool = false
    var count: Int = 0

    //MARK: - Process
    for char in str {
        if char == ")" {
            count -= 1
            if count < 0 {
                flag = true
                break
            }
        } else {
            count += 1
        }
    }
    flag = count == 0 ? false : true

    //MARK: - Output
    print(flag ? "NO" : "YES")
}
solution()

์ „์ฒด์ฝ”๋“œ๋Š” ์—ฌ๊ธฐ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.