deo2kim
๋งž์™œํ‹€
deo2kim
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ
    • CS
      • Algorithm
      • Data Structure
      • Network
      • DB
      • OS
    • Algorithm Problem
      • Python
      • JavaScript
    • Programming language
      • Python
      • JavaScript
    • Tool
      • Jquery
      • React
    • ๊ฐœ๋ฐœ
    • Infra

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

๋ฐ˜์‘ํ˜•
hELLO ยท Designed By ์ •์ƒ์šฐ.
deo2kim

๋งž์™œํ‹€

[python] ๋ฐฑ์ค€ - 2504. ๊ด„ํ˜ธ์˜ ๊ฐ’
Algorithm Problem/Python

[python] ๋ฐฑ์ค€ - 2504. ๊ด„ํ˜ธ์˜ ๊ฐ’

2020. 10. 13. 20:03
๋ฐ˜์‘ํ˜•

๐Ÿค”๋ฌธ์ œ ํ•ด๊ฒฐ

  • S2 | ์Šคํƒ, ์ž๋ฃŒ๊ตฌ์กฐ, ๊ตฌํ˜„, ์žฌ๊ท€

๊ด„ํ˜ธ๋ฌธ์ œ๋Š” ํ•ญ์ƒ ์Šคํƒ์œผ๋กœ ํ’€์—ˆ๋‹ค.

  • ๋จผ์ € ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ์ธ์ง€ ์ฒดํฌํ•˜์ž! ๊ทธ ๋‹ค์Œ
  • ์Šคํƒ์„ ์ด์šฉํ•ด ๊ด„ํ˜ธ ์ง์„ ๋งž์ถ”๋ฉด์„œ ()์ผ ๋•Œ 2, []์ผ ๋•Œ 3์„ ๊ณ„์‚ฐํ•ด์ค€๋‹ค.
  • ๋งŒ์•ฝ ์Šคํƒ์˜ ๋งˆ์ง€๋ง‰์— ์ˆซ์ž๊ฐ€ ์žˆ๋‹ค๋ฉด ๊ณฑํ•ด์ค€๋‹ค.
  • ๋งŒ์•ฝ ์Šคํƒ์— ์ˆซ์ž๊ฐ€ ์—ฐ์†์œผ๋กœ ๋‚˜์—ด๋˜๋ฉด ๋”ํ•ด์ค€๋‹ค.

 

 

๐Ÿ’ป์†Œ์Šค ์ฝ”๋“œ

def is_right(s):
    stack = []
    for ss in s:
        if ss == '(':
            stack.append(ss)
        elif ss == ')':
            if stack and stack[-1] == '(':
                stack.pop()
            else:
                return False
        elif ss == '[':
            stack.append(ss)
        elif ss == ']':
            if stack and stack[-1] == '[':
                stack.pop()
            else:
                return False
    if stack:
        return False
    return True


def my_stack(s):
    stack = []
    for c in s:
        print(stack)

        if c == '(':
            stack.append(c)
        elif c == '[':
            stack.append(c)
        elif c == ')':
            tmp = 2
            while True:
                t = stack.pop()
                if type(t) == int:
                    tmp *= t
                elif t == '(':
                    stack.append(tmp)
                    break
        elif c == ']':
            tmp = 3
            while True:
                t = stack.pop()
                if type(t) == int:
                    tmp *= t
                elif t == '[':
                    stack.append(tmp)
                    break
        tmp = 0
        while stack:
            t = stack.pop()
            if type(t) == int:
                tmp += t
            else:
                stack.append(t)
                break
        if tmp:
            stack.append(tmp)


    return stack[-1]


S = input()
if is_right(S):
    print(my_stack(S))
else:
    print(0)

 

๐Ÿ“•๋ฌธ์ œ ํ™•์ธ

์ถœ์ฒ˜: BACKJOON ONLINE JUDGE

๋งํฌ: https://www.acmicpc.net/problem/2504

 

2504๋ฒˆ: ๊ด„ํ˜ธ์˜ ๊ฐ’

4๊ฐœ์˜ ๊ธฐํ˜ธ ‘(’, ‘)’, ‘[’, ‘]’๋ฅผ ์ด์šฉํ•ด์„œ ๋งŒ๋“ค์–ด์ง€๋Š” ๊ด„ํ˜ธ์—ด ์ค‘์—์„œ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ์—ด์ด๋ž€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜๋œ๋‹ค. ํ•œ ์Œ์˜ ๊ด„ํ˜ธ๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ‘()’์™€ ‘[]’๋Š” ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ์—ด์ด๋‹ค.  ๋งŒ์ผ

www.acmicpc.net

๋ฐ˜์‘ํ˜•
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€

'Algorithm Problem > Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[python] ๋ฐฑ์ค€ - 1735. ๋ถ„์ˆ˜ ํ•ฉ  (0) 2020.10.15
[python] ๋ฐฑ์ค€ - 1965. ์ƒ์ž ๋„ฃ๊ธฐ  (0) 2020.10.14
[python] ๋ฐฑ์ค€ - 1890. ์ ํ”„  (0) 2020.10.12
[python] ๋ฐฑ์ค€ - 1780. ์ข…์ด์˜ ๊ฐœ์ˆ˜  (0) 2020.10.11
[python] ๋ฐฑ์ค€ - 11279. ์ตœ๋Œ€ ํž™  (0) 2020.10.10
    'Algorithm Problem/Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [python] ๋ฐฑ์ค€ - 1735. ๋ถ„์ˆ˜ ํ•ฉ
    • [python] ๋ฐฑ์ค€ - 1965. ์ƒ์ž ๋„ฃ๊ธฐ
    • [python] ๋ฐฑ์ค€ - 1890. ์ ํ”„
    • [python] ๋ฐฑ์ค€ - 1780. ์ข…์ด์˜ ๊ฐœ์ˆ˜
    deo2kim
    deo2kim
    ์ฝ”๋”ฉ ๊ธฐ๋กํ•˜๊ธฐ

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”