๋ฌธ์
์ฌ๋ฌ ๊ฐ์ ์ ๋ง๋๊ธฐ๋ฅผ ๋ ์ด์ ๋ก ์ ๋จํ๋ ค๊ณ ํ๋ค. ํจ์จ์ ์ธ ์์ ์ ์ํด์ ์ ๋ง๋๊ธฐ๋ฅผ ์๋์์ ์๋ก ๊ฒน์ณ ๋๊ณ , ๋ ์ด์ ๋ฅผ ์์์ ์์ง์ผ๋ก ๋ฐ์ฌํ์ฌ ์ ๋ง๋๊ธฐ๋ค์ ์๋ฅธ๋ค. ์ ๋ง๋๊ธฐ์ ๋ ์ด์ ์ ๋ฐฐ์น๋ ๋ค์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ค.
- ์ ๋ง๋๊ธฐ๋ ์์ ๋ณด๋ค ๊ธด ์ ๋ง๋๊ธฐ ์์๋ง ๋์ผ ์ ์๋ค. - ์ ๋ง๋๊ธฐ๋ฅผ ๋ค๋ฅธ ์ ๋ง๋๊ธฐ ์์ ๋๋ ๊ฒฝ์ฐ ์์ ํ ํฌํจ๋๋๋ก ๋๋, ๋์ ์ ๊ฒน์น์ง ์๋๋ก ๋๋๋ค.
- ๊ฐ ์ ๋ง๋๊ธฐ๋ฅผ ์๋ฅด๋ ๋ ์ด์ ๋ ์ ์ด๋ ํ๋ ์กด์ฌํ๋ค.
- ๋ ์ด์ ๋ ์ด๋ค ์ ๋ง๋๊ธฐ์ ์ ๋์ ๊ณผ๋ ๊ฒน์น์ง ์๋๋ค.
์๋ ๊ทธ๋ฆผ์ ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์๋ฅผ ๋ณด์ฌ์ค๋ค. ์ํ์ผ๋ก ๊ทธ๋ ค์ง ๊ตต์ ์ค์ ์ ์ ๋ง๋๊ธฐ์ด๊ณ , ์ ์ ๋ ์ด์ ์ ์์น, ์์ง์ผ๋ก ๊ทธ๋ ค์ง ์ ์ ํ์ดํ๋ ๋ ์ด์ ์ ๋ฐ์ฌ ๋ฐฉํฅ์ด๋ค.
์ด๋ฌํ ๋ ์ด์ ์ ์ ๋ง๋๊ธฐ์ ๋ฐฐ์น๋ ๋ค์๊ณผ ๊ฐ์ด ๊ดํธ๋ฅผ ์ด์ฉํ์ฌ ์ผ์ชฝ๋ถํฐ ์์๋๋ก ํํํ ์ ์๋ค.
- ๋ ์ด์ ๋ ์ฌ๋ ๊ดํธ์ ๋ซ๋ ๊ดํธ์ ์ธ์ ํ ์ โ( ) โ ์ผ๋ก ํํ๋๋ค. ๋ํ, ๋ชจ๋ โ( ) โ๋ ๋ฐ๋์ ๋ ์ด์ ๋ฅผ ํํํ๋ค.
- ์ ๋ง๋๊ธฐ์ ์ผ์ชฝ ๋์ ์ฌ๋ ๊ดํธ โ ( โ ๋ก, ์ค๋ฅธ์ชฝ ๋์ ๋ซํ ๊ดํธ โ) โ ๋ก ํํ๋๋ค.
์ ์์ ๊ดํธ ํํ์ ๊ทธ๋ฆผ ์์ ์ฃผ์ด์ ธ ์๋ค.
์ ๋ง๋๊ธฐ๋ ๋ ์ด์ ์ ์ํด ๋ช ๊ฐ์ ์กฐ๊ฐ์ผ๋ก ์๋ ค์ง๋๋ฐ, ์ ์์์ ๊ฐ์ฅ ์์ ์๋ ๋ ๊ฐ์ ์ ๋ง๋๊ธฐ๋ ๊ฐ๊ฐ 3๊ฐ์ 2๊ฐ์ ์กฐ๊ฐ์ผ๋ก ์๋ ค์ง๊ณ , ์ด์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ฃผ์ด์ง ์ ๋ง๋๊ธฐ๋ค์ ์ด 17๊ฐ์ ์กฐ๊ฐ์ผ๋ก ์๋ ค์ง๋ค.
์ ๋ง๋๊ธฐ์ ๋ ์ด์ ์ ๋ฐฐ์น๋ฅผ ๋ํ๋ด๋ ๊ดํธ ํํ์ด ์ฃผ์ด์ก์ ๋, ์๋ ค์ง ์ ๋ง๋๊ธฐ ์กฐ๊ฐ์ ์ด ๊ฐ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
ํ ์ค์ ์ ๋ง๋๊ธฐ์ ๋ ์ด์ ์ ๋ฐฐ์น๋ฅผ ๋ํ๋ด๋ ๊ดํธ ํํ์ด ๊ณต๋ฐฑ์์ด ์ฃผ์ด์ง๋ค. ๊ดํธ ๋ฌธ์์ ๊ฐ์๋ ์ต๋ 100,000์ด๋ค.
์ถ๋ ฅ
์๋ ค์ง ์กฐ๊ฐ์ ์ด ๊ฐ์๋ฅผ ๋ํ๋ด๋ ์ ์๋ฅผ ํ ์ค์ ์ถ๋ ฅํ๋ค.
์๊ฐ ์ ํ | ๋ฉ๋ชจ๋ฆฌ ์ ํ | ์ ์ถ | ์ ๋ต | ๋งํ ์ฌ๋ | ์ ๋ต ๋น์จ |
---|---|---|---|---|---|
1 ์ด | 256 MB | 47077 | 30280 | 22507 | 64.761% |
https://www.acmicpc.net/problem/10799
ํ์ด
ํด๊ฒฐ๋ฒ
์ด๋ฌธ์ ๋ ์คํ์ ์ด์ฉํ์ฌ ์ ๊ทผํ์ฌ์ผํ๋ค.
์ ๋ง๋๊ธฐ๊ฐ ์๋ฆฌ๋ ค๋ฉด ()
๊ดํธ๊ฐ ๋ฑ์ฅ ํด์ผ ํ๋ค. (๊ทธ๋ฆผ์ฐธ๊ณ )
์ฆ ๋ ์ด์ ๊ฐ ๋ฑ์ฅํ๋ฉด ์ง๊ธ๊น์ง (
๋ก ๋์ ๋์ด์๋ ์ ๋ง๋๊ธฐ๊ฐ ์๋ฆฌ๊ฒ ๋๋ค.
์ฌ๊ธฐ์ ๋์ค๋ ๊ธฐํธ๋ 2๊ฐ์ง ์ด๋ฏ๋ก ๋๋ ์ ๋ณด์
(
๋ฑ์ฅ
(
๊ฐ ๋ฑ์ฅํ ๊ฒฝ์ฐ์๋ ์ ๋ง๋๊ธฐ๋ฅผ ์ ๋จ๊ธฐ ์๋์ ๋๋ ๋ถ๋ถ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
์ฆ, Stack์ Push ํด์ฃผ๋ฉด ๋๋ค.
)
๋ฑ์ฅ
)
๊ฐ ๋ฑ์ฅํ ๊ฒฝ์ฐ ๋ 2๊ฐ์ง๋ก ๋๋๋ค.
- ๋ ์ด์ ๊ฐ ๋์ฌ๊ฒฝ์ฐ
- ์ ๋ง๋๊ธฐ๊ฐ ๋๋๋ ๊ฒฝ์ฐ
https://delay100.tistory.com/3 ํด๊ฒฐ๋ฐฉ์
์ฝ๋
public class ์ ๋ง๋๊ธฐ {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
String s = bf.readLine();
String[] sl = s.split("");
Stack<String> st = new Stack<>(); //์คํ์ ์ ์ธ
int count = 0;
for (int i = 0; i < sl.length; i++) {
if(sl[i].equals("(")) {
st.push(sl[i]);
}
else if (sl[i].equals(")")) {
if (sl[i-1].equals("(")) {
st.pop(); //()์ผ๋๋๊น ํ๋๋ฅผ ๋นผ์ค๋ค.
count+=st.size(); //์คํ์ ํฌ๊ธฐ๋ฅผ ์นด์ดํธ์ ๋ฃ์ด์ค๋ค.
} else {
st.pop();
count++;
}
}
}
System.out.print(count);
}
}