Baekjoon 10799 - ์ ๋ง๋๊ธฐ
Baekjoon 10799 - ์ ๋ง๋๊ธฐ
๐ซ ๋ฌธ์
๐ซง Example Input/Output
1
2
3
4
5
6
7
8
// IN
// () : ๋ ์ด์ (์ ๋ง๋๊ธฐ๋ฅผ ์๋ฅผ ์ ์๋)
// ( : ์ ๋ง๋๊ธฐ ์์ (์ผ์ชฝ ๋)
// ) : ์ ๋ง๋๊ธฐ ๋ (์ค๋ฅธ์ชฝ ๋)
()(((()())(())()))(())
// OUT
17 // ์ ๋ง๋๊ธฐ ์กฐ๊ฐ ์
๐ซ C++ ํ์ด
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
string s;
cin >> s;
int pipeCount = 0;
int score = 0;
bool lastOpen = false;
for (auto c : s)
{
if (c == '(')
{
score++;
lastOpen = true;
}
else
{
score--;
pipeCount += lastOpen ? score : 1;
lastOpen = false;
}
}
cout << pipeCount;
}
๐ซ Memo
- ๋ ์ด์ ๊ฐ ์ ๋ง๋๊ธฐ๋ฅผ ์๋ฅด๋ ์์น ํ์
๋ ๋ค๋ฅธ ์ ๋ณด๋ฅผ ํ์, ์ฌ๋ ๊ดํธ๋ผ๋ฉด ์คํ +1, ๋ซ๋ ๊ดํธ๋ผ๋ฉด ์คํ -1
- 1~5๋ฒ์ ํตํด ๊ท์น ์ฐพ๊ธฐ
- ์ฝ๋๋ก ์ฎ๊ธฐ๊ธฐ
- ์ ์ : ๋ชจ๋ ๋ฌธ์์ด์ ๊ท ํ์กํ ๊ดํธ ๋ฌธ์์ด์ด๋ค
- ๊ฐ ๋ฌธ์์ ๋ํด (
for
) - ๋ฌธ์๊ฐ
(
๋ฉด ์ ์ +1 - ๋ฌธ์๊ฐ
)
๋ฉด
- ์ผ๋จ ์ ์ -1
- ๋ง์ฝ ์ด์ ๋ฌธ์๊ฐ
(
์๋ค๋ฉด ์ ๋ง๋๊ธฐ += ํ์ฌ ์ ์ - ์๋๋ผ๋ฉด ์ ๋ง๋๊ธฐ += 1
- ๊ฐ ๋ฌธ์์ ๋ํด (
- ์ ์ : ๋ชจ๋ ๋ฌธ์์ด์ ๊ท ํ์กํ ๊ดํธ ๋ฌธ์์ด์ด๋ค
- ์๋ ์คํ์ ์จ์ ํ์๋๋ฐ, ์ด์ฐจํผ ๊ท ํ์กํ ๋ฌธ์์ด์ด๋ผ ๊ตณ์ด ์คํ์ ์ฐ์ง ์์๋ ๋๋ค.
์ด ๊ธฐ์ฌ๋ ์ ์๊ถ์์ CC BY 4.0 ๋ผ์ด์ผ์ค๋ฅผ ๋ฐ๋ฆ
๋๋ค.