๋ฌธ์
ํด๋น ํฌ์คํ ์ ๋ฐฑ์ค์ 10799๋ฒ ์ ๋ง๋๊ธฐ ์ ์ ๊ทผ๊ณผ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ค๋ช ํ ๊ธ ์ ๋๋ค.
์ ๋ต ์์ค ์ฝ๋๋ฅผ ํ์ธํ์๋ ค๋ฉด solve url ์์ ํ์ธ ๊ฐ๋ฅํฉ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ด๋ค ๋ฐฉ์์ผ๋ก ์ ๊ทผํด์ผ ํ๋์ง๋ฅผ ๋จผ์ ์๊ฐํด๋ณด์.
ํด๊ฒฐ๋ฒ
์ด๋ฒ ๋ฌธ์ ๋ ์คํ์ ์ด์ฉํด์ ๋ฌธ์ ๋ฅผ ์ ๊ทผํด์ผ ํ๋ค.
์ฐ์ ์ ๋ง๋๊ธฐ๊ฐ ์๋ฆฌ๊ธฐ ์ํด์๋ ()
๊ดํธ๊ฐ ๋ฑ์ฅํด์ผ ํ๋ค.
๊ดํธ๊ฐ ๋ฑ์ฅํ๋ฉด ์ฆ, ๋ ์ด์ ๊ฐ ๋ฑ์ฅํ๋ฉด ์ง๊ธ๊น์ง ๋์ ๋์ด ์๋ ์ ๋ง๋๊ธฐ (
๊ฐ ์๋ฆฌ๊ฒ ๋๋ค.
์ฐ๋ฆฌ๋ ์ด ๊ฒ์ ๋ณด๊ณ stack.size()๋งํผ ์ถ๊ฐํด์ฃผ๋ฉด ๋๋ค๋ ๊ฒ์ ์ ์ ์๋ค.
์ฌ๊ธฐ์ ๋ฑ์ฅํ ์ ์๋ ๊ธฐํธ๋ 2๊ฐ์ง์ด๋ฏ๋ก 2๊ฐ๋ก ๋๋ ๋ณด์.
(
๊ฐ ๋ฑ์ฅํ ๊ฒฝ์ฐ)
๊ฐ ๋ฑ์ฅํ ๊ฒฝ์ฐ
(
๊ฐ ๋ฑ์ฅํ ๊ฒฝ์ฐ
(
๊ฐ ๋ฑ์ฅํ ๊ฒฝ์ฐ๋ ์ ๋ง๋๊ธฐ๋ฅผ ์ ๋จ๊ธฐ ์๋์ ๋๋ ๋ถ๋ถ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
์ฆ, stack์ push ํด์ฃผ๋ฉด ๋๋ค.
)
๊ฐ ๋ฑ์ฅํ ๊ฒฝ์ฐ
)
๊ฐ ๋ฑ์ฅํ ๊ฒฝ์ฐ๋ ๋ 2๊ฐ์ง๋ก ๋๋๋ค.
- ๋ ์ด์ ๊ฐ ๋์ฌ ๊ฒฝ์ฐ
- ์ ๋ง๋๊ธฐ๊ฐ ๋๋๋ ๊ฒฝ์ฐ
๋ ์ด์ ๊ฐ ๋์ฌ ๊ฒฝ์ฐ
๋ ์ด์ ๊ฐ ๋์ฌ ๊ฒฝ์ฐ๋ ๋ฐ๋ก ์ง์ ์์๊ฐ (
์ธ ๊ฒฝ์ฐ์ ํด๋นํ๋ค.
๋ ์ด์ ๊ฐ ๋์จ ๊ฒฝ์ฐ์๋ ์ ๋ง๋๊ธฐ๋ค์ ๊ฐฏ์๋งํผ ์ฆ stack.size()๋งํผ ์ ๋ต ๊ฐ์ ๋์ ํด์ฃผ๋ฉด ๋๋ค.
์ ๋ง๋๊ธฐ๊ฐ ๋๋๋ ๊ฒฝ์ฐ
์ ๋ง๋๊ธฐ๊ฐ ๋๋๋ ๊ฒฝ์ฐ๋ ์กฐ๊ธ ์๊ฐํด๋ด์ผ ํ๋ค.
์ ๋ง๋๊ธฐ๊ฐ ๋๋ฌ๋ค๋ ๊ฒฝ์ฐ์๋
---- ์ ๋ง๋๊ธฐ
์์ ๊ฐ์ ์ ๋ง๋๊ธฐ๊ฐ ์๋ค๊ณ ๊ฐ์ ํด๋ณด์.
๊ทธ๋ผ ์ด ์ ๋ง๋๊ธฐ๊ฐ ์๋ฆฌ๋ฉด ๋ช๊ฐ์ ์ ๋ง๋๊ธฐ๊ฐ ๋์ฌ๊น?
-- | -- ์ ๋ง๋๊ธฐ
2๊ฐ์ ์ ๋ง๋๊ธฐ๊ฐ ๋์จ๋ค.
๊ทธ๋ผ 3๊ฐ์ ์ ๋ง๋๊ธฐ๊ฐ ์๋ ๊ฒฝ์ฐ ๊ฐ์ฅ ์งง์ ์ ๋ง๋๊ธฐ๋ฅผ ์๋ผ๋ณด์.
--|-- // <-- ๋ฌด์กฐ๊ฑด ํ๋๊ฐ ๋จ์
--|------ // <-- ์ด ์ ๋ง๋๊ธฐ๊ฐ ๋๋๋ ๊ฒฝ์ฐ์๋ ์ด ์ ๋ง๋๊ธฐ๋ ํ๋๊ฐ ๋ ๋จ์
--|---------- // <-- ์ญ์ ๋์ผ
์งค๋ฆฐ ์ ๋ง๋๊ธฐ์ ์ ์ผ ์๋จ ๋ถ๋ถ์ ๋ฌด์กฐ๊ฑด ํ๋๊ฐ ๋จ๊ฒ ๋๋ค.
๊ทธ๋์ ๊ฒฐ๊ตญ ์ฐ๋ฆฌ๊ฐ ์ง์ ํ ์ ๋ต ๊ฐ์๋ +1์ ํด์ฃผ๋ฉด ๋๋ ๊ฒ์ด๋ค.
์ ๋ต ์ฝ๋
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String[] n = br.readLine().split("");
Stack<String> stack = new Stack<>();
int answer = 0;
for (int i = 0; i < n.length; i++) {
String now = n[i];
if(now.equals("(")) stack.push(now);
else {
if(n[i-1].equals("(")) {
stack.pop();
answer += stack.size();
}else {
answer++;
stack.pop();
}
}
}
bw.write(String.valueOf(answer));
bw.flush();
bw.close();
}
}
๋๊ธ