๐Ÿค– ์•Œ๊ณ ๋ฆฌ์ฆ˜

baekjoon. ์‡ ๋ง‰๋Œ€๊ธฐ (10799) [python][Silver II]

ttoance 2023. 1. 29. 15:01

๋ฌธ์ œ ๋งํฌ : https://www.acmicpc.net/problem/10799

 

๋ฌธ์ œ ํ’€์ด 

sticks = input()

stack = []
count = 0
for i in range(len(sticks)):
    cur = sticks[i]

    # ( ๋งŒ๋‚˜๋ฉด stack push 
    if (cur == '('):
        stack.append(cur)

    # ์ตœ์ƒ๋‹จ์ด (์ด๊ณ  ๊ทธ ๋‹ค์Œ์ด) ์ด๋ฉด size ์ถ”๊ฐ€ 
    # ) ๋งŒ๋‚˜๋ฉด 1 ์ถ”๊ฐ€ 
    elif (cur == ')'):
        stack.pop()

        if (sticks[i - 1] == '('):
            count += len(stack)
        else:
            count = count + 1

    # print(i, ' : ', cur, ' - ', count)

print(count)

 


((( () () ))) ๋ฅผ ์˜ˆ์‹œ๋กœ ๋ณด๋ฉด, ๊ฐ๊ฐ์˜ ๊ธฐํ˜ธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ญํ• ์„ ํ•œ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. 

- () : ๋ง‰๋Œ€๊ธฐ ์ž๋ฆ„ 

- ( : ๋ง‰๋Œ€๊ธฐ ์ƒˆ๋กœ ์ƒ์„ฑ 

- ) : ๋ง‰๋Œ€๊ธฐ ์ƒˆ๋กœ ์ƒ์„ฑ (์ข…๋ฃŒ) 

 

 

 

- ((( : 3๊ฐœ ๋ง‰๋Œ€๊ธฐ ์ƒˆ๋กœ ์ƒ์„ฑํ•œ๋‹ค. 

- () : ์ž๋ฅด๋ฉด์„œ ๋ง‰๋Œ€๊ธฐ 3๊ฐœ๋ฅผ ๋งŒ๋“ ๋‹ค 

- () : ๋˜๋‹ค์‹œ ์ž๋ฅด๋ฉด์„œ ๋ง‰๋Œ€๊ธฐ 3๊ฐœ๋ฅผ ๋งŒ๋“ ๋‹ค 

- ))) : 3๊ฐœ ๋ง‰๋Œ€๊ธฐ ์ƒˆ๋กœ ์ƒ์„ฑ (=์ข…๋ฃŒ) ํ•œ๋‹ค. 

 

 

 

๊ฒฐ๊ณผ์ ์œผ๋กœ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ๊ทธ๋ฆผ์„ ๊ทธ๋ฆด ์ˆ˜ ์žˆ๋‹ค. 

 

 

 

๊ทธ๋ž˜์„œ ์ด ๋กœ์ง์„ ๊ทœ์น™์œผ๋กœ ํ’€์–ด๋ณด๋ฉด, ์•„๋ž˜์™€ ๊ฐ™๋‹ค. 

1. (๋ฅผ ๋งŒ๋‚˜๋ฉด ์Šคํƒ์— (๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค. 

2. )๋ฅผ ๋งŒ๋‚˜๊ณ  ์Šคํƒ์˜ ์ตœ์ƒ๋‹จ์ด (์ด์—ˆ์œผ๋ฉด, ์ด๋ฉด ์Šคํƒ์˜ ํฌ๊ธฐ๋งŒํผ ๊ฐฏ์ˆ˜์— ์ถ”๊ฐ€ํ•œ๋‹ค. 

3. )๋ฅผ ๋งŒ๋‚˜๋ฉด, ๊ฐฏ์ˆ˜์— 1์„ ์ถ”๊ฐ€ํ•œ๋‹ค. 

 

 

 

๋ฐ˜์‘ํ˜•