๊ดํธ๊ฐ ์ ๋ ฅ๋๋ฉด ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด๋ฉด "YES", ์ฌ๋ฐ๋ฅด์ง ์์ผ๋ฉด "NO"๋ฅผ ์ถ๋ ฅํ๋ค. (())() ์ด๊ฒ์ ๊ดํธ์ ์์ด ์ฌ๋ฐ๋ฅด๊ฒ ์์นํ๋ ๊ฑฐ์ง๋ง, (()()))์ ์ฌ๋ฐ๋ฅธ ๊ดํธ๊ฐ ์๋๋๋ค.
์ ๋ ฅ
์ฒซ ๋ฒ์งธ ์ค์ ๊ดํธ ๋ฌธ์์ด์ด ์ ๋ ฅ๋๋ค. ๋ฌธ์์ด์ ์ต๋ ๊ธธ์ด๋ 30์ด๋ค.
(()(()))(()
()()(()())
์ถ๋ ฅ
NO
YES
#include <iostream>
using namespace std;
int main(){
//freopen("input.txt", "rt", stdin);
char a[100];
int cnt = 0;
cin >> a;
for(int i = 0; a[i] != '\0'; ++i){
if(a[i] == '(') cnt++;
else if(a[i] == ')') cnt--;
if(cnt < 0) break;
}
if(cnt == 0){
cout << "YES";
}
else{
cout << "NO";
}
return 0;
}
๊ฐ๋
1. stack ์ฌ์ฉ(์์ง ์ ๋ฐฐ์์ ๋ค์์ ๋ฐฐ์ฐ๋ฉด ๋ค์ ํ์ด๋ณด๊ธฐ)
2. (์ผ๋งค ํ์ด) cnt = 0์ผ๋ก ๋๊ณ ์ด๋ฆด ๋ +1, ๋ซํ ๋ -1์ ํ๋ฉด์ ๋ง์ง๋ง cnt ๊ฐ์ด 0์ผ ๋, ์ค๊ฐ์ ์์๋ฉด ์๋จ. ๊ทธ๋ฌ๋ฉด ์ดํ์ ์ด์ด๋ ์๋ฏธ๊ฐ ์์
'๐ง ์ฝ๋ฉํ ์คํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ธํ๋ฐ C++] 10. ์๋ฆฟ์์ ํฉ (0) | 2024.03.15 |
---|---|
[์ธํ๋ฐ C++] 9. ๋ชจ๋์ ์ฝ์ (์ ํ์๊ฐ 1์ด) (0) | 2024.03.15 |
[์ธํ๋ฐ C++] 7. ์์ด๋จ์ด ๋ณต๊ตฌ (0) | 2024.03.15 |
[์ธํ๋ฐ C++] 6. ์ซ์๋ง ์ถ์ถ (0) | 2024.03.15 |
[์ธํ๋ฐ C++] 5. ๋์ด๊ณ์ฐ (0) | 2024.03.14 |