๐Ÿ—๏ธ Algorithm/๐ŸŸฉ ๋ฐฑ์ค€

[๋ฐฑ์ค€] [Python] 4949๋ฒˆ_๊ท ํ˜•์žกํžŒ ์„ธ์ƒ_์Šคํƒ

Dbswnstjd 2022. 10. 26. 00:46

๋ฌธ์ œ

https://www.acmicpc.net/problem/4949

 

4949๋ฒˆ: ๊ท ํ˜•์žกํžŒ ์„ธ์ƒ

ํ•˜๋‚˜ ๋˜๋Š” ์—ฌ๋Ÿฌ์ค„์— ๊ฑธ์ณ์„œ ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ๋ฌธ์ž์—ด์€ ์˜๋ฌธ ์•ŒํŒŒ๋ฒณ, ๊ณต๋ฐฑ, ์†Œ๊ด„ํ˜ธ("( )") ๋Œ€๊ด„ํ˜ธ("[ ]")๋“ฑ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉฐ, ๊ธธ์ด๋Š” 100๊ธ€์ž๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค. ๊ฐ ์ค„์€ ๋งˆ์นจํ‘œ(".")๋กœ ๋๋‚œ๋‹ค

www.acmicpc.net

ํ’€์ด

# ๋ฐฑ์ค€ 4949๋ฒˆ ๋ฌธ์ œ - ๊ท ํ˜•์žกํžŒ ์„ธ์ƒ
bracket = ['(','[',')',']']
while True:
    stack = []
    string = input()
    if string == '.':
        break
    for s in string:
        if s in bracket: # ๊ด„ํ˜ธ๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ
            if len(stack) == 0:
                stack.append(s)
                continue
            if s == ')' and stack[-1] == '(':
                stack.pop()
                continue
            elif s == ']' and stack[-1] == '[':
                stack.pop()
                continue
            stack.append(s)
    if len(stack):
        print('no')
    else:
        print('yes')