๐Ÿ—๏ธ Algorithm/โฌ› ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

[Programmers] [์Šคํƒ/ํ] [Python] Level2_์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ

Dbswnstjd 2022. 10. 6. 22:34

๋ฌธ์ œ 

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

 

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

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

programmers.co.kr

ํ’€์ด

# ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2๋‹จ๊ณ„ - ์Šคํƒ/ํ - ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ
def solution(s):
    answer = True
    stack = []
    for t in s:
        if t == '(':
            stack.append(t)
        elif len(stack) and t == ')':
            stack.pop()
        else:
            return False
    return False if len(stack) else True

stack์— ์—ฌ๋Š” ๊ด„ํ˜ธ๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋˜๋ฉด append ํ•ด์ฃผ๊ณ  ๋‹ซ๋Š” ๊ด„ํ˜ธ๊ฐ€ ๋‚˜์˜ค๋ฉด pop ํ•ด์ค€๋‹ค. 

๋งˆ์ง€๋ง‰์— stack์— ์›์†Œ๊ฐ€ ์กด์žฌํ•œ๋‹ค๋ฉด ์ž˜๋ชป๋œ ๊ด„ํ˜ธ์ด๋‹ค.