[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ /ํŒŒ์ด์ฌ /Python
Algorithm/Programmers

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ /ํŒŒ์ด์ฌ /Python

728x90
๋ฐ˜์‘ํ˜•

 

๐Ÿ’กsolutions )

๐Ÿ’ฌ ๋ฐ˜๋ณต๋ฌธ์—์„œ ๋‚˜์˜จ ๊ด„ํ˜ธ๊ฐ€ "( " ๊ด„ํ˜ธ๋ฉด stack์— ๋„ฃ๊ณ , ")"๊ฐ€ ๋‚˜์˜ค๋ฉด stack์˜ ๋งจ ๋งˆ์ง€๋ง‰ ์š”์†Œ๊ฐ€ "("๊ด„ํ˜ธ๋กœ ๋งž๋Š” ์ง€ ํ™•์ธํ•˜๊ณ  ์ง์ด ๋งž๋Š” ๊ฒฝ์šฐ ๋งจ ๋งˆ์ง€๋ง‰ ์š”์†Œ์ธ "("๋ฅผ pop์œผ๋กœ ์ œ๊ฑฐํ•œ๋‹ค. ์ฆ‰, "("์™€")"๊ฐ€ ๋งŒ๋‚  ๋•Œ๋งŒ stack์—์„œ "("์ œ๊ฑฐ

๐Ÿ’ฌ ๋‹จ, stack์ด ๋น„์–ด์žˆ์„ ๋•Œ ๋‚˜์˜จ ์š”์†Œ๊ฐ€ ")"์ด๋ฉด ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๊ด„ํ˜ธ์ด๋‹ˆ ๋ฐ”๋กœ False๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค.

๐Ÿ’ฌ ๊ทธ ์•„๋ž˜ ์ฐธ๊ณ ๋กœ ๊ฐ€์ ธ์˜จ ์ฝ”๋“œ๋Š” ๊ด„ํ˜ธ ์ข…๋ฅ˜๊ฐ€ ๋‘๊ฐœ์ด๋‹ˆ "("์ธ ๊ฒฝ์šฐ +1, ")"์ธ ๊ฒฝ์šฐ -1์„ ํ•˜์—ฌ ์ตœ์ข… ๊ฒฐ๊ณผ๊ฐ’์ด 0์ด ๋˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋กœ์ง์ด๋‹ค.

 

๐ŸŽซcode )

โœ” ๋‚˜์˜ ํ’€์ด

def solution(s):
    stack = []
    for i in range(len(s)):
        if not stack and s[i] == ')':
            return False
        if s[i] == '(':
            stack.append('(')
        else:
            if stack[-1] == '(':
                stack.pop()
            else:
                return False
    else:
        return False if stack else True

 

โœ” ์ฐธ๊ณ ํ•  ๋งŒํ•œ ํ’€์ด

def solution(s):
    x = 0
    for w in s:
        if x < 0:
            break
        x = x + 1 if w == "(" else x - 1
    return x == 0

 

 

๐Ÿ“Œ description )

๋ฌธ์ œ์ถœ์ฒ˜ : programmers.co.kr/learn/courses/30/lessons/12909?language=python3

 

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

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

programmers.co.kr

์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ


๋ฌธ์ œ ์„ค๋ช…

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

  • ()() ๋˜๋Š” (())() ๋Š” ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ์ž…๋‹ˆ๋‹ค.
  • )()( ๋˜๋Š” (()( ๋Š” ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๊ด„ํ˜ธ์ž…๋‹ˆ๋‹ค.

'(' ๋˜๋Š” ')' ๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด s๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋ฌธ์ž์—ด s๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ์ด๋ฉด true๋ฅผ return ํ•˜๊ณ , ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๊ด„ํ˜ธ์ด๋ฉด false๋ฅผ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”.

์ œํ•œ์‚ฌํ•ญ

  • ๋ฌธ์ž์—ด s์˜ ๊ธธ์ด : 100,000 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜
  • ๋ฌธ์ž์—ด s๋Š” '(' ๋˜๋Š” ')' ๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

 

 

๋ฐ˜์‘ํ˜•