์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

<์Šคํƒ/ํ> ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ ˆ๋ฒจ 2. ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ

์š”๋Œœ๋‹ค 2022. 8. 17. 16:32

https://school.programmers.co.kr/learn/courses/30/lessons/12909

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

def solution(s):
    answer = True
    stack = []
    for i in s:
        if i == '(':
            stack.append(0)
        else :
            if not stack: #์Šคํƒ์„ ๋น„์›Œ์•ผํ•˜๋Š”๋ฐ ์ด๋ฏธ ๋น„์›Œ์ ธ ์žˆ์œผ๋ฉด
                return False
            stack.pop()
            
    if stack: #์Šคํƒ์ด ์ฑ„์›Œ์ ธ ์žˆ์œผ๋ฉด
        return False
    else : # ์Šคํƒ์ด ๋น„์›Œ์ ธ ์žˆ์œผ๋ฉด
        return True
    return True

 ๊ธฐํ˜ธ '(' ๊ฐ€ ์žˆ์œผ๋ฉด  ์Šคํƒ์— ์ถ”๊ฐ€ํ•ด์ฃผ๊ณ , ')'๊ฐ€ ์žˆ์œผ๋ฉด ์‚ญ์ œํ•ด์ฃผ๋Š” ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜๋ฉด ๋œ๋‹ค.

์ด๋•Œ, ๊ธฐํ˜ธ๊ฐ€ ')'๋ถ€ํ„ฐ ์‹œ์ž‘๋˜๋ฉด, ๋น„์–ด์ง„ ์Šคํƒ์— pop์„ ํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์—, False๋ฅผ ๋ฆฌํ„ดํ•ด์ฃผ๋ฉด ๋œ๋‹ค