Potato
์•ˆ๋…•ํ•˜์„ธ์š”, ๊ฐ์žก๋‹ˆ๋‹ค?๐Ÿฅ” ^___^ ๐Ÿ˜บ github ๋ฐ”๋กœ๊ฐ€๊ธฐ ๐Ÿ‘‰๐Ÿป

Algorithm/Programmers

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ (level.2)

๊ฐ์ž ๐Ÿฅ” 2021. 10. 13. 00:41
๋ฐ˜์‘ํ˜•

 

๋ฌธ์ œ ๋งํฌ

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

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ

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

programmers.co.kr

๋‚˜์˜ ํ’€์ด

  • ์ž๋ฃŒํ˜• list๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํšจ์œจ์„ฑ์ด ๋–จ์–ด์ง„๋‹ค. list๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋ง๊ณ  ๋ฌด์กฐ๊ฑด deque๋ฅผ ์‚ฌ์šฉํ•˜์ž (์‹ค์ œ๋กœ list๋ฅผ ๋ชจ๋‘ deque๋กœ ๋ฐ”๊พธ์—ˆ๋”๋‹ˆ ํšจ์œจ์„ฑํ…Œ์ŠคํŠธ ํ†ต๊ณผ๋ฅผ ํ•˜์˜€๋‹ค.)
  1. ๊ด„ํ˜ธ๋Š” () ์ด๋ ‡๊ฒŒ ๋‹ซํ˜€์•ผ๋งŒ True๋กœ ์ธ์‹ํ•ด์•ผํ•œ๋‹ค.
  2. s์— ์ฃผ์–ด์ง„ ๊ด„ํ˜ธ๋“ค์„ ํ•œ๊ฐœ์”ฉ left ๋ณ€์ˆ˜์— ์ €์žฅํ•ด๋†“๊ณ , ๋‹ค์Œ ๋ณ€์ˆ˜๋ฅผ ๋ณด๋ฉด์„œ () ๋‹ซํžˆ๋Š” ๊ตฌ์กฐ๊ฐ€ ๋‚˜์˜ค๋ฉด left์—์„œ ์—†์• ์ฃผ๋Š” ๊ณผ์ •์„ ๊ฑฐ์น˜๋ฉฐ True/False๋ฅผ ๊ตฌ๋ณ„ํ•ด๋ƒˆ๋‹ค.
from collections import deque

def solution(s):
    right = deque(s)
    left = deque()

    while right:
        r = right.popleft()
        if len(left) == 0:
            if r != ')':
                left.append(r)
            else:
                left.append('999')
                break
        else:
            if left[-1] == '(':
                if r == ')':
                    left.pop()
                else:
                    left.append(r)

    if len(left) == 0:
        answer = True
    else:
        answer = False

    return answer

 

 

๋ฌธ์ œ๊ฐ€ ๊ฐœํŽธ๋˜์–ด์„œ ์ข‹์•„์š”๋ฅผ ๋งŽ์ด ๋ฐ›์€ ํ’€์ด๋Š” ์ฐธ๊ณ ํ•˜๊ธฐ ์–ด๋ ค์› ๋‹ค. ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ํŒŒ์ด์ฌ์œผ๋กœ ํ‘ผ ๋‹ค๋ฅธ ์‚ฌ๋žŒ ํ’€์ด๋ฅผ ์‚ดํŽด๋ณด๋‹ˆ, ๋‚˜์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•œ ์‚ฌ๋žŒ๋“ค์ด ๋งŽ์•˜๋‹ค. ์‚ฌ์‹ค ๋‚˜๋„ ์ด์ „์— ๊ด„ํ˜ธ์™€ ๊ด€๋ จ๋œ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ณด๋‹ˆ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ํ’€์ด๋ฅผ ์ง„ํ–‰ํ•ด ๋‚˜๊ฐ”์—ˆ๋‹ค. ์ด์ฒ˜๋Ÿผ ๋ฌธ์ œ๋ฅผ ๋งŽ์ด ํ’€์–ด๋ณผ์ˆ˜๋ก ํ’€์ด ๊ณผ์ •์— ๋Œ€ํ•œ ๊ณ ๋ฏผ์˜ ์‹œ๊ฐ„์ด ์ค„์–ด๋“œ๋Š” ๊ฒƒ์„ ๋Š๊ผˆ๋‹ค. ๋…ธ๋ ฅ์€ ๋ฐฐ์‹ ํ•˜์ง€์•Š๋Š”๋‹ค!!! ์—ด์‹ฌํžˆ ๊พธ์ค€ํžˆ๋งŒ ํ•˜์ž ใ…Žใ…Ž

๋ฐ˜์‘ํ˜•