๊ธ€ ์ž‘์„ฑ์ž: ๊ฐœ๋ฐœํ•˜๋Š” ํ›ˆ์ด

๋ฌธ์ œ

๋ฌธ์ œ ์„ค๋ช…

๊ด„ํ˜ธ๊ฐ€ ๋ฐ”๋ฅด๊ฒŒ ์ง์ง€์–ด์กŒ๋‹ค๋Š” ๊ฒƒ์€ '(' ๋ฌธ์ž๋กœ ์—ด๋ ธ์œผ๋ฉด ๋ฐ˜๋“œ์‹œ ์ง์ง€์–ด์„œ ')' ๋ฌธ์ž๋กœ ๋‹ซํ˜€์•ผ ํ•œ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด

  • "()()" ๋˜๋Š” "(())()" ๋Š” ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ์ž…๋‹ˆ๋‹ค.
  • ")()(" ๋˜๋Š” "(()(" ๋Š” ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๊ด„ํ˜ธ์ž…๋‹ˆ๋‹ค.

'(' ๋˜๋Š” ')' ๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด s๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋ฌธ์ž์—ด s๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ์ด๋ฉด true๋ฅผ return ํ•˜๊ณ , ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๊ด„ํ˜ธ์ด๋ฉด false๋ฅผ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”.

์ œํ•œ์‚ฌํ•ญ

  • ๋ฌธ์ž์—ด s์˜ ๊ธธ์ด : 100,000 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜
  • ๋ฌธ์ž์—ด s๋Š” '(' ๋˜๋Š” ')' ๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ’€์ด

์ฒ˜์Œ์—๋Š” ์Šคํƒ์œผ๋กœ ํ’€๋ฉด ๋˜๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ, ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚ฌ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋ฐฐ์—ด์— ์‹ค์ œ๋กœ ๊ฐ’์„ ๋„ฃ๊ณ  ๋นผ๋Š” ์ž‘์—…์„ ํ•˜์ง€ ์•Š๊ณ  ๊ด„ํ˜ธ์˜ ์ƒํƒœ๋ฅผ ์•Œ๊ธฐ ์œ„ํ•ด ์—ด๋ฆฌ๋Š” ๊ด„ํ˜ธ์˜ ๊ฐœ์ˆ˜๋ฅผ ์„ธ๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์—ด๋ฆฌ๋Š” ๊ด„ํ˜ธ๊ฐ€ ์ƒ๊ธฐ๋ฉด ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ํ•˜๋‚˜ ์˜ฌ๋ ค์ฃผ๊ณ , ๋‹ซํžˆ๋Š” ๊ด„ํ˜ธ๊ฐ€ ๋‚˜์˜ค๋ฉด ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ํ•˜๋‚˜ ์ค„์—ฌ์ค๋‹ˆ๋‹ค. ๊ด„ํ˜ธ์˜ ์ง์ด ๋งž๋Š”๋‹ค๋ฉด ์—ด๋ฆฌ๋Š” ๊ด„ํ˜ธ์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋‹ค ๋๋‚ฌ์„ ๋•Œ 0์ด ๋˜๋ฏ€๋กœ true๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์—†์œผ๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์ฝ”๋“œ

import Foundation

func solution(_ s:String) -> Bool {
    var openBraceCount = 0
    
    for c in s {
        if openBraceCount > 0 && c == ")" {
            openBraceCount -= 1
        } else {
            openBraceCount += 1
        }
    }

    return openBraceCount == 0
}