ํฐ์คํ ๋ฆฌ ๋ทฐ
๋ฌธ์
์ฌ๋ฌ ๊ฐ์ ์ ๋ง๋๊ธฐ๋ฅผ ๋ ์ด์ ๋ก ์ ๋จํ๋ ค๊ณ ํ๋ค. ํจ์จ์ ์ธ ์์ ์ ์ํด์ ์ ๋ง๋๊ธฐ๋ฅผ ์๋์์ ์๋ก ๊ฒน์ณ ๋๊ณ , ๋ ์ด์ ๋ฅผ ์์์ ์์ง์ผ๋ก ๋ฐ์ฌํ์ฌ ์ ๋ง๋๊ธฐ๋ค์ ์๋ฅธ๋ค. ์ ๋ง๋๊ธฐ์ ๋ ์ด์ ์ ๋ฐฐ์น๋ ๋ค์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ค.
- ์ ๋ง๋๊ธฐ๋ ์์ ๋ณด๋ค ๊ธด ์ ๋ง๋๊ธฐ ์์๋ง ๋์ผ ์ ์๋ค. - ์ ๋ง๋๊ธฐ๋ฅผ ๋ค๋ฅธ ์ ๋ง๋๊ธฐ ์์ ๋๋ ๊ฒฝ์ฐ ์์ ํ ํฌํจ๋๋๋ก ๋๋, ๋์ ์ ๊ฒน์น์ง ์๋๋ก ๋๋๋ค.
- ๊ฐ ์ ๋ง๋๊ธฐ๋ฅผ ์๋ฅด๋ ๋ ์ด์ ๋ ์ ์ด๋ ํ๋ ์กด์ฌํ๋ค.
- ๋ ์ด์ ๋ ์ด๋ค ์ ๋ง๋๊ธฐ์ ์ ๋์ ๊ณผ๋ ๊ฒน์น์ง ์๋๋ค.
์๋ ๊ทธ๋ฆผ์ ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์๋ฅผ ๋ณด์ฌ์ค๋ค. ์ํ์ผ๋ก ๊ทธ๋ ค์ง ๊ตต์ ์ค์ ์ ์ ๋ง๋๊ธฐ์ด๊ณ , ์ ์ ๋ ์ด์ ์ ์์น, ์์ง์ผ๋ก ๊ทธ๋ ค์ง ์ ์ ํ์ดํ๋ ๋ ์ด์ ์ ๋ฐ์ฌ ๋ฐฉํฅ์ด๋ค.

์ด๋ฌํ ๋ ์ด์ ์ ์ ๋ง๋๊ธฐ์ ๋ฐฐ์น๋ ๋ค์๊ณผ ๊ฐ์ด ๊ดํธ๋ฅผ ์ด์ฉํ์ฌ ์ผ์ชฝ๋ถํฐ ์์๋๋ก ํํํ ์ ์๋ค.
- ๋ ์ด์ ๋ ์ฌ๋ ๊ดํธ์ ๋ซ๋ ๊ดํธ์ ์ธ์ ํ ์ ‘( ) ’ ์ผ๋ก ํํ๋๋ค. ๋ํ, ๋ชจ๋ ‘( ) ’๋ ๋ฐ๋์ ๋ ์ด์ ๋ฅผ ํํํ๋ค.
- ์ ๋ง๋๊ธฐ์ ์ผ์ชฝ ๋์ ์ฌ๋ ๊ดํธ ‘ ( ’ ๋ก, ์ค๋ฅธ์ชฝ ๋์ ๋ซํ ๊ดํธ ‘) ’ ๋ก ํํ๋๋ค.
์ ์์ ๊ดํธ ํํ์ ๊ทธ๋ฆผ ์์ ์ฃผ์ด์ ธ ์๋ค.
์ ๋ง๋๊ธฐ๋ ๋ ์ด์ ์ ์ํด ๋ช ๊ฐ์ ์กฐ๊ฐ์ผ๋ก ์๋ ค์ง๋๋ฐ, ์ ์์์ ๊ฐ์ฅ ์์ ์๋ ๋ ๊ฐ์ ์ ๋ง๋๊ธฐ๋ ๊ฐ๊ฐ 3๊ฐ์ 2๊ฐ์ ์กฐ๊ฐ์ผ๋ก ์๋ ค์ง๊ณ , ์ด์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ฃผ์ด์ง ์ ๋ง๋๊ธฐ๋ค์ ์ด 17๊ฐ์ ์กฐ๊ฐ์ผ๋ก ์๋ ค์ง๋ค.
์ ๋ง๋๊ธฐ์ ๋ ์ด์ ์ ๋ฐฐ์น๋ฅผ ๋ํ๋ด๋ ๊ดํธ ํํ์ด ์ฃผ์ด์ก์ ๋, ์๋ ค์ง ์ ๋ง๋๊ธฐ ์กฐ๊ฐ์ ์ด ๊ฐ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
10799๋ฒ: ์ ๋ง๋๊ธฐ
์ฌ๋ฌ ๊ฐ์ ์ ๋ง๋๊ธฐ๋ฅผ ๋ ์ด์ ๋ก ์ ๋จํ๋ ค๊ณ ํ๋ค. ํจ์จ์ ์ธ ์์ ์ ์ํด์ ์ ๋ง๋๊ธฐ๋ฅผ ์๋์์ ์๋ก ๊ฒน์ณ ๋๊ณ , ๋ ์ด์ ๋ฅผ ์์์ ์์ง์ผ๋ก ๋ฐ์ฌํ์ฌ ์ ๋ง๋๊ธฐ๋ค์ ์๋ฅธ๋ค. ์ ๋ง๋๊ธฐ์ ๋ ์ด์
www.acmicpc.net
์ ๋ ฅ
ํ ์ค์ ์ ๋ง๋๊ธฐ์ ๋ ์ด์ ์ ๋ฐฐ์น๋ฅผ ๋ํ๋ด๋ ๊ดํธ ํํ์ด ๊ณต๋ฐฑ์์ด ์ฃผ์ด์ง๋ค. ๊ดํธ ๋ฌธ์์ ๊ฐ์๋ ์ต๋ 100,000์ด๋ค.
์ถ๋ ฅ
์๋ ค์ง ์กฐ๊ฐ์ ์ด ๊ฐ์๋ฅผ ๋ํ๋ด๋ ์ ์๋ฅผ ํ ์ค์ ์ถ๋ ฅํ๋ค.

๋ฌธ์ ํ์ด
ํฌ๊ฒ ๋ ๊ฐ์ง ์ํฉ์ผ๋ก ๋๋ ์ ์๊ฐํ๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.
๋ซํ ๊ดํธ' ) ' ๊ฐ ๋ ์ด์ ๋ฅผ ๋ปํ๋์ง, ์ ์ ๋ง์ง๋ง ๋ถ๋ถ์ ๋๋๋ ๊ฒ์ธ์ง.
๋ซํ ๊ดํธ ์์ ์ด๋ฆฐ ๊ดํธ' ( ' ๊ฐ ์์๋ค๋ฉด ๋ ์ด์ ๋ฅผ ๋ปํ๋ ๊ฒ์ผ ๊ฑฐ๊ณ , ๊ทธ ์ธ์ ์ํฉ์ ์ ์ ๋ง์ง๋ง์ ๋ํ๋ผ ๊ฒ ์ ๋๋ค.
๋ฌธ์์ด์ ์ํ๋ฅผ ๋๋ฉฐ ์คํ์ ์ด๋ฆฐ ๊ดํธ' ( ' ๋ฅผ push ํด์ฃผ๊ณ , ๋ซํ ๊ดํธ' ) ' ๊ฐ ๋์ฌ ๋ ๋ถ๊ธฐ ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ๊ฒ ์ต๋๋ค.
๋ํ ์๋ฆฐ ์ ์ ๊ฐ์๋ ๋ซํ ๊ดํธ' ) ' ๊ฐ ๋์์ ๋, ๋ ์ด์ ์ธ์ง ์ ์ ๋ง์ง๋ง์ธ์ง ํ๋จ์ ํด์ฃผ๊ณ
์คํ์ ๋จ์ ์๋ ์ด๋ฆฐ ๊ดํธ ' ( ' ์ ์๋ฅผ ๊ณ ๋ คํ๋ฉด ๋ ๊ฒ์ ๋๋ค.
์๋ฅผ ๋ค์ด, ์คํ์ ์ด๋ฆฐ ๊ดํธ' ( ' 3๊ฐ๊ฐ ๋ด๊ฒจ ์๊ณ ๋ ์ด์ ๊ฐ ๋์จ ์ํฉ์ด๋ผ๋ฉด ์๋ ค ๋์จ ์ ์ ๊ฐ์๋ 3๊ฐ ์ผ ๊ฒ ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ง์ฝ ๋ซํ ๊ดํธ' ) ' ๊ฐ ์ ์ ๋ง์ง๋ง์ ๋ํ๋ธ๋ค๋ฉด ํด๋น ์ ์ ๋์ ๋จ๊ฒจ์ง ์ ์ ๊ฐ์ 1๊ฐ๋ฅผ
๋ํด์ฃผ๋ฉด ๋ฉ๋๋ค.
c++์ ๊ฒฝ์ฐ ๋ฌธ์์ด์ ์๋ธ ์คํฌ๋ฆฝํธ ๋ฌธ๋ฒ์ ์ฌ์ฉํ์ฌ ํด๋น ๊ดํธ์ ์ด์ ๊ดํธ๋ฅผ ์ฝ๊ฒ ํ์ธํ ์ ์์์ต๋๋ค.
๊ทธ๋ฌ๋ swift์ ๊ฒฝ์ฐ ๋ฌธ์์ ์๋ธ ์คํฌ๋ฆฝํธ ๋ฌธ๋ฒ์ ์ง์ํด์ฃผ์ง ์๊ธฐ ๋๋ฌธ์ ์ด์ ๊ดํธ๋ฅผ ํ์ธํ๊ธฐ ์ํด
๋ณ์๋ฅผ ์ ์ธํ์ฌ ์ ์ฅํด์ฃผ์ด ํ์ธํ์์ต๋๋ค.
ํ์ด ์์
1. ์คํ์ ์์ฑํฉ๋๋ค.
2. ๋ฌธ์์ด์ ์ํํ๋ฉด์ ๊ดํธ์ ๋ฐ๋ผ ๋ถ๊ธฐ ์ฒ๋ฆฌ๋ฅผ ํฉ๋๋ค.
- ์ด๋ฆฐ ๊ดํธ' ( ' ๋ผ๋ฉด ์คํ์ ๋ฃ์ด์ค๋๋ค.
- ๋ซํ ๊ดํธ ' ) ' ๋ผ๋ฉด ์ด์ ์ ๊ดํธ์ ๋ฐ๋ผ ๋ถ๊ธฐ ์ฒ๋ฆฌํฉ๋๋ค.
2-1.
๋ซ๋ ๊ดํธ ์์ ๋ซ๋ ๊ดํธ๊ฐ ๋์จ๋ค๋ฉด, ์ด๋ ์ ๋ง๋๊ธฐ์ ๋์ ๋ํ๋ ๋๋ค.
๋ฐ๋ผ์ ์ด์ ์ ์ฌ๋ ๊ดํธ๋ฅผ ์คํ์์ popํ๊ณ ์๋ฆฐ ์ ๋ง๋๊ธฐ์ ๊ฐ์๋ฅผ ์ฆ๊ฐ์ํต๋๋ค.
2-2.
๋ซ๋ ๊ดํธ ์์ ์ฌ๋ ๊ดํธ๊ฐ ๋์จ๋ค๋ฉด, ์ด๋ ๋ ์ด์ ๋ฅผ ์๋ฏธํฉ๋๋ค.
๋ฐ๋ผ์ ์ด์ ์ ๋ ์ด์ ๋ฅผ ํ์ํ ์ฌ๋ ๊ดํธ๋ฅผ ์คํ์์ popํ๊ณ ์คํ์ ๋จ์ ์๋ ์ด๋ฆฐ ๊ดํธ์ ๊ฐ์๋ฅผ ์๋ฆฐ ์ ๋ง๋๊ธฐ์ ๊ฐ์์ ๋ํฉ๋๋ค.
ํ์ด ์ฝ๋
< Swift>
// Swift
var str = readLine()!
var s = [Character]()
var t = 0
var prev: Character = " "
for c in str {
if c == "(" {
s.append(c)
prev = c
} else { // ")"
if prev == "(" {
s.removeLast()
t += s.count
} else { // prev == ")"
s.removeLast()
t += 1
}
prev = c
}
}
print(t)
< C++>
// C++
#include <bits/stdc++.h>
using namespace std;
string s;
long long ans = 0;
stack<char> st;
int main(void){
ios::sync_with_stdio(0);
cin.tie(0);
cin >> s;
int sz = s.length();
//Implicit conversion loses integer precision: 'size_type' (aka 'unsigned long') to 'int'
for (int i = 0; i < sz; i++) {
if (s[i]=='(') // ๋ฌธ์์ด์ ์๋ธ์คํฌ๋ฆฝํธ ๊ตฌ๋ฌธ ํ์ฉ
st.push(s[i]);
else {
if (s[i-1] == '(') { // ๋ ์ด์ ์ผ ๊ฒฝ์ฐ
st.pop();
ans+=st.size();
}
else { // s[i-1] == ')' // ์ ๊ฐ ๋๋ ๊ฒฝ์ฐ
st.pop();
ans++;
}
}
}
cout << ans << "\n";
return 0;
}
<int, long ๋น๊ต์ ๊ดํ ์ฐธ๊ณ ์๋ฃ>
๋ง๋ฌด๋ฆฌ
๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ ์กฐ๊ฑด์ ๊ณ ๋ คํ์ง ์๊ณ ์ฝ๋๋ฅผ ์์ฑํ๋ฉฐ ๋ต์ ๋ด๋ ค๊ณ ํ๋ฉด ์ด๋ ค์ด ๋ฌธ์ ์ ๋๋ค.
๋ฐ๋ผ์ ๋ฌธ์ ์ํฉ์ ๊น์ด ํ์ ํ๊ณ ์ด๋ค ๋ฐฉ์์ผ๋ก ์นด์ดํธ๋ฅผ ํ ์ง ๊ณ ๋ฏผํด๋ณด๋ ๊ฒ์ด ์ค์ํ ๊ฒ ๊ฐ์ต๋๋ค.
์ถ๊ฐ๋ก, xcode์์ ์์ฑํ C++ ์ฝ๋์์ ๋ฐ์ํ ๊ฒฝ๊ณ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์๋ก์ด ๊ฐ๋ ์ ๋ํด ์์๋ณด๊ฒ ๋์์ต๋๋ค.
ํนํ, int์ long ํ์ ์ ๋ํ ํฅ๋ฏธ๋ก์ด ์ด์ผ๊ธฐ๋ฅผ ์ฐพ์๋ณด์๋๋ฐ, ์ด ๋ด์ฉ์ ์ฐธ๊ณ ์๋ฃ๋ก ๋จ๊ฒจ๋์์ต๋๋ค.
'Coding Test > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] 2504๋ฒ - ๊ดํธ์ ๊ฐ (Swift, C++) (2) | 2024.02.29 |
---|---|
[BOJ] 4949๋ฒ - ๊ท ํ์กํ ์ธ์ (Swift, C++) (0) | 2024.02.25 |
[BOJ] 10845๋ฒ - ํ (Swift, C++) (0) | 2024.02.23 |
[BOJ] 10773๋ฒ - ์ ๋ก (Swift, C++) (0) | 2024.02.22 |
[BOJ] 5397๋ฒ - ํค๋ก๊ฑฐ (Swift, C++) (0) | 2024.02.21 |
- pageViewController
- ์์ด ๋ด์ค
- ๊ดํธ์ ๊ฐ
- ๋จ์ผ ์ฐ๊ฒฐ ๋ฆฌ์คํธ
- 10808
- containerView
- ์ ํ์์นด๋ฐ๋ฏธ
- ์์ด ๊ณต๋ถ
- Anyobject
- 24๋ ํ๊ณ
- root view controller
- ์คํ
- ์ํํธ์คํฌ
- BOJ
- tipkit
- ํ๊ณ
- ๊ท๋๋ผ๋ฏธ ์์ด
- ํ
- ๊ท๋๋ผ๋ฏธ ์์ด
- ๊ฐ๋ฐ์
- Container View Controller
- 2023๋ ํ๊ณ
- remainder
- ๋ฒ์ฉ๊ณ ์ ์๋ณ
- C++
- ์๋ฃ ๊ตฌ์กฐ
- ๊ณต๊ฐ ๋ณต์ก๋
- ์๋ฐฉํฅ ์ฐ๊ฒฐ ๋ฆฌ์คํธ
- Swift
- 2024๋ ๋ชฉํ
- Total
- Today
- Yesterday