JOYLOG

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ | Lv.2 | Python ๋ณธ๋ฌธ

D E V E L O P E R ๐Ÿ’ป/Problem Solving

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ | Lv.2 | Python

์ฃผํž 2021. 7. 3. 09:17

๋ฌธ์ œ ์„ค๋ช…

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

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

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

์ œํ•œ์‚ฌํ•ญ

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

ํ’€์ด

- ์Šคํƒ ํ™œ์šฉ

- ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ฒ€์‚ฌํ•˜์—ฌ '('๋Š” ์Šคํƒ์— push ํ•˜๊ณ , ')'์ผ ๋• ์Šคํƒ์„ pop ํ•œ๋‹ค.

- ์ด๋•Œ popํ•  '('๊ฐ€ ์—†์œผ๋ฉด False

- ๋ฆฌ์ŠคํŠธ ๊ฒ€์‚ฌ๊ฐ€ ๋๋‚œ ํ›„ ์Šคํƒ์ด ๋น„์–ด ์žˆ์ง€ ์•Š๋‹ค๋ฉด False

def solution(s):
    answer = True

    # ์Šคํƒ ํ™œ์šฉ
    stack = []

    # ๋ฆฌ์ŠคํŠธ ๊ฒ€์‚ฌ
    for i in s :
        if i == '(': # '('์ผ๋•Œ
            stack.append(i)
        else : # ')'์ผ๋•Œ
            if len(stack) == 0 : #์Šคํƒ์ด ๋น„์–ด์žˆ์œผ๋ฉด = (popํ•  '('๊ฐ€ ์—†๋‹ค๋ฉด)
                return False
            stack.pop()

    if len(stack) is not 0 : # ์Šคํƒ์ด ๋น„์–ด์žˆ์ง€ ์•Š๋‹ค๋ฉด
        return False

    return True
Comments