[LeetCode] 20. Valid Parentheses

Sungwooยท2024๋…„ 10์›” 22์ผ
0

Algorithm

๋ชฉ๋ก ๋ณด๊ธฐ
1/43
post-thumbnail

๐Ÿ“•๋ฌธ์ œ

LeetCode 20. Valid Parentheses

๋ฌธ์ œ ์„ค๋ช…

๊ด„ํ˜ธ๋“ค๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด์ด ์œ ํšจํ•œ์ง€ ํ™•์ธํ•˜๋Š” ๋ฌธ์ œ๋‹ค.

์กฐ๊ฑด

  1. ์—ด๋ฆฐ ๊ด„ํ˜ธ๋Š” ๊ฐ™์€ ์œ ํ˜•์˜ ๊ด„ํ˜ธ๋กœ ๋‹ซ์•„์•ผ ํ•œ๋‹ค.
  2. ์—ด๋ฆฐ ๊ด„ํ˜ธ๋Š” ์˜ฌ๋ฐ”๋ฅธ ์ˆœ์„œ๋Œ€๋กœ ๋‹ซํ˜€์•ผ ํ•œ๋‹ค. (=์—ด๋ฆฐ ์ˆœ์„œ๊ฐ€ ๋Šฆ์€ ์ˆœ์„œ๋Œ€๋กœ ๋‹ซํ˜€์•ผ ํ•œ๋‹ค.)
  3. ๋ชจ๋“  ๊ด„ํ˜ธ๋Š” ์Œ์„ ์ด๋ฃจ์–ด์•ผ ํ•œ๋‹ค.

๐Ÿ“ํ’€์ด

class Solution:
    def isValid(self, s: str) -> bool:
        stack = []
        parentheses = ['(', '{', '[', ')', '}', ']']
        for i in s:
            if parentheses.index(i) < 3:
                stack.append(parentheses.index(i))
            else:
                if not stack or stack.pop()+3 != parentheses.index(i):
                    return False
        return False if stack else True
  • ๋ฌธ์ž์—ด์˜ ๋‹ค์Œ ๊ด„ํ˜ธ๊ฐ€ ์—ด๋ฆผ ๊ด„ํ˜ธ์ธ ๊ฒฝ์šฐ stack ์— ์ถ”๊ฐ€ํ•œ๋‹ค.
  • ๋‹ซํž˜ ๊ด„ํ˜ธ์ธ ๊ฒฝ์šฐ ์Šคํƒ์ด ๋น„์–ด์žˆ๋Š”์ง€(= ์—ด๋ฆผ ๊ด„ํ˜ธ ์—†์ด ๋‹ซํž˜ ๊ด„ํ˜ธ๊ฐ€ ์ถœํ˜„),
    ์Šคํƒ์—์„œ ๊บผ๋‚ธ ๊ด„ํ˜ธ์™€ ์Œ์„ ์ด๋ฃจ๋Š”์ง€ ๊ฒ€์‚ฌ
  • ๋ฌธ์ž์—ด์„ ๋ชจ๋‘ ์ˆœํšŒ ํ›„ stack์ด ๋น„์–ด์ ธ ์žˆ๋‹ค๋ฉด True, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด Flase.

๋ฌธ์ œ๋ฅผ ํ’€๊ณ  ๋‹ค๋ฅธ ํ’€์ด๋“ค์„ ๋ณด๋‹ˆ ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ์ด์šฉํ•ด ๊ด„ํ˜ธ๋“ค์„ ์ง์ง€์€ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•˜๋‹ค.
์ฃผ์–ด์ง„ ์Œ์ด ํ•ด๋‹น ๋ฌธ์ œ์™€ ๋‹ฌ๋ฆฌ ๋‹จ์ˆœํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์œ„์˜ ์ฝ”๋“œ๊ฐ€ ์ข‹์ง€ ์•Š๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์–ด ์ด๋ฅผ ์ฐธ๊ณ ํ•ด ๊ฐœ์„ ํ•ด๋ณด์•˜๋‹ค.

class Solution:
    def isValid(self, s: str) -> bool:
        stack = []
        parentheses = {
            '(': ')',
            '{': '}',
            '[': ']'
        }
        for i in s:
            if i in parentheses:
                stack.append(parentheses[i])
            else:
                if not stack or stack.pop() != i:
                    return False
        return False if stack else True
  • ์—ด๋ฆผ ๊ด„ํ˜ธ๊ฐ€ key, ๋‹ซํž˜ ๊ด„ํ˜ธ๊ฐ€ value์ธ ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ๋งŒ๋“  ํ›„ ์ด๋ฅผ ํ™œ์šฉํ–ˆ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€