ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

 

10799๋ฒˆ: ์‡ ๋ง‰๋Œ€๊ธฐ

์—ฌ๋Ÿฌ ๊ฐœ์˜ ์‡ ๋ง‰๋Œ€๊ธฐ๋ฅผ ๋ ˆ์ด์ €๋กœ ์ ˆ๋‹จํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ํšจ์œจ์ ์ธ ์ž‘์—…์„ ์œ„ํ•ด์„œ ์‡ ๋ง‰๋Œ€๊ธฐ๋ฅผ ์•„๋ž˜์—์„œ ์œ„๋กœ ๊ฒน์ณ ๋†“๊ณ , ๋ ˆ์ด์ €๋ฅผ ์œ„์—์„œ ์ˆ˜์ง์œผ๋กœ ๋ฐœ์‚ฌํ•˜์—ฌ ์‡ ๋ง‰๋Œ€๊ธฐ๋“ค์„ ์ž๋ฅธ๋‹ค. ์‡ ๋ง‰๋Œ€๊ธฐ์™€ ๋ ˆ์ด์ €๏ฟฝ

www.acmicpc.net

 

๋ฌธ์ œ ํ’€์ด

 ( ) ์—ฐ์†์ ์œผ๋กœ ๊ด„ํ˜ธ๊ฐ€ ๋“ฑ์žฅํ•˜๋ฉด ํ•ด๋‹น ์œ„์น˜๋Š” ๋ ˆ์ด์ €์ด๋‹ค. ๋”ฐ๋ผ์„œ ๋‹ค๋ฅธ ๊ด„ํ˜ธ ๋“ค๊ณผ ๊ตฌ๋ถ„ํžˆ ๋˜๊ฒŒ ( )๋ฅผ ๋‹ค๋ฅธ ๋ฌธ์ž๋กœ ์น˜ํ™˜ํ•œ๋‹ค๋ฉด ๋ฌธ์ œ์— ์ ‘๊ทผํ•˜๊ธฐ๊ฐ€ ์กฐ๊ธˆ ์‰ฌ์›Œ ์ง„๋‹ค.

 

 ๋งŒ์•ฝ ( )๋ฅผ โ˜…๋กœ ์น˜ํ™˜ํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด โ˜…(((โ˜…โ˜…)(โ˜…)โ˜…))(โ˜…) ์™€ ๊ฐ™์ด ์น˜ํ™˜๋˜๊ฒŒ ๋œ๋‹ค. ๋ฌธ์ œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ’€ ์ˆ˜ ์žˆ๋‹ค.

  1. ์—ฌ๋Š” ๊ด„ํ˜ธ์ธ '('๊ฐ€ ์ž…๋ ฅ๋˜๋ฉด stack์— `push`ํ•˜๊ณ  ๋‹ซ๋Š” ๊ด„ํ˜ธ์ธ ')'๊ฐ€ ์ž…๋ ฅ๋˜๋ฉด `pop`์„ ํ•œ๋‹ค.  
  2. ํ˜„์žฌ  ๊ฐ’์ด ์—ฌ๋Š” ๊ด„ํ˜ธ '('๋ผ๋ฉด, ๋ง‰๋Œ€๊ธฐ์˜ ์ˆ˜๋ฅผ 1 ์ฆ๊ฐ€ ์‹œํ‚จ๋‹ค.
  3. ํ˜„์žฌ ๊ฐ’์ด ๋ ˆ์ด์ € ๋ผ๋ฉด stack์— ์žˆ๋Š” ์—ฌ๋Š” ๊ด„ํ˜ธ ์ˆ˜๋งŒํผ ๋ง‰๋Œ€๊ธฐ์˜ ์ˆ˜๋ฅผ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค.

 ์ฆ‰, stack์— ์žˆ๋Š” ์—ฌ๋Š” ๊ด„ํ˜ธ '('์˜ ์ˆ˜๋Š” ์ค‘์ฒฉ๋œ ์‡ ๋ง‰๋Œ€๊ธฐ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์—ฌ๋Š” ๊ด„ํ˜ธ๊ฐ€ stack์— ์žˆ๊ณ  ๋ ˆ์ด์ €๋ฅผ ๋งŒ๋‚˜๊ฒŒ ๋˜๋ฉด ์ค‘์ฒฉ๋œ ๊ฐœ์ˆ˜๋งŒํผ ์ฆ๊ฐ€์‹œ์ผœ์ฃผ์–ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ ํ•  ์ˆ˜ ์žˆ๋‹ค.๐Ÿ˜Š

์ฝ”๋“œ

from sys import stdin


if __name__ == "__main__":
    s = stdin.readline().replace("()", "l")
    stack = []
    answer = 0
    for c in s:
        print(c)
        if c == '(':
            stack.append('(')
            answer += 1
        elif c == ')':
            stack.pop()
        elif c == 'l':
            answer += len(stack)
    print(answer)

 

728x90
๋ฐ˜์‘ํ˜•
๋Œ“๊ธ€
๊ธ€ ๋ณด๊ด€ํ•จ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€