๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

๋ฐฑ์ค€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€์ด : 10799๋ฒˆ ์‡ ๋ง‰๋Œ€๊ธฐ python

by developerBeluga 2022. 1. 19.
728x90
๋ฐ˜์‘ํ˜•

 

 

๐Ÿ“Œ ๋ฌธ์ œ

https://www.acmicpc.net/problem/10799

 

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

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

www.acmicpc.net

 


 

๐Ÿ”– ํ’€์ด

 

์ฒ˜์Œ ๋ฌธ์ œ๋ฅผ ๋ณด๊ณ  ๋ฐ”๋กœ ์ดํ•ดํ•˜์ง€ ๋ชปํ–ˆ๋‹ค.

ํ’€์ด๋Š” ์–ด๋ ต์ง€ ์•Š์ง€๋งŒ ์Šคํƒ์„ ์ด์šฉํ•ด์„œ

ํ’€์–ด์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ๋ฌธ์ œ ์ดํ•ด๋Š” ์–ด๋ ค์šด ๊ฒƒ ๊ฐ™๋‹ค.

 

 

bar = list(input())

answer = 0
stack = []

for i in range(len(bar)):
  # i๊ฐ€ "("์ธ ๊ฒฝ์šฐ
  if bar[i] == "(":
    stack.append(bar[i])
  # i๊ฐ€ ")"์ธ ๊ฒฝ์šฐ
  else:
    # "()"๋ผ๋ฉด ๋ ˆ์ด์ € ํŒŒํŠธ
    if bar[i-1] == "(":
      stack.pop()
      answer+= len(stack)
    # "))"๋ผ๋ฉด ์‡ ๋ง‰๋Œ€๊ธฐ ๋„ํŠธ๋จธ๋ฆฌ ํ‘œํ˜„
    else:
      stack.pop()
      answer += 1

print(answer)

 

์ด 3๊ฐ€์ง€ ์กฐ๊ฑด๋ฌธ์„ ๋งŒ๋“ค์–ด ์ฃผ๋ฉด ๋œ๋‹ค.

 

1. i๊ฐ€ "("์ธ ๊ฒฝ์šฐ

2. i๊ฐ€ ")"์ธ ๊ฒฝ์šฐ

  2-1. "()"์ธ ๊ฒฝ์šฐ

  2-2. "))"์ธ ๊ฒฝ์šฐ

 

 

"()"๋Š” ๋ ˆ์ด์ €์ด๊ธฐ ๋•Œ๋ฌธ์— ์Šคํƒ์—์„œ "("๋ฅผ ํ•˜๋‚˜ ๋นผ์ฃผ๊ณ 

์Šคํƒ์— ๋‚จ์•„์žˆ๋Š” "("๋ฅผ answer์— ๋”ํ•ด์ค€๋‹ค.

 

"))"๋ผ๋ฉด ์‡ ๋ง‰๋Œ€๊ธฐ์˜ ๋„ํŠธ๋จธ๋ฆฌ ํ‘œํ˜„์ด๊ธฐ ๋•Œ๋ฌธ์—

ํ•˜๋‚˜๊ฐ€ ๋‚˜์˜ฌ๋•Œ๋งˆ๋‹ค ํ•˜๋‚˜์”ฉ ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

 

 

 

 

 

 

 

 

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€