Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- siss
- HTML
- 백준
- 숙명여자대학교 정보보안 동아리
- PHP 웹페이지 만들기
- Javascript
- C언어
- c++
- The Loard of BOF
- BOJ
- 머신러닝
- 파이썬
- 드림핵
- c
- SWEA
- WarGame
- hackctf
- 기계학습
- BOJ Python
- lob
- CSS
- 생활코딩
- 숙명여자대학교 정보보안동아리
- hackerrank
- XSS Game
- Sookmyung Information Security Study
- Python
- 자료구조 복습
- 풀이
- 웹페이지 만들기
Archives
- Today
- Total
혜랑's STORY
[BOJ_C++] 9012번 : 괄호 본문
학교 과제와 비슷해서 풀어보았다. 저번에 엄청 틀렸었는데 이번엔 맞아서 기분 좋네 ㅎㅅㅎ
- 풀이
#include <iostream>
#include <strstream>
#include <cctype>
using namespace std;
#define LINESIZE 1000
struct Stack {
char* store;
int capacity;
int top;
};
int create(Stack& s, int size = 100) {
s.capacity = size;
s.top = 0;
return (s.store = new char[size]) != 0;
}
// If the stack is full, then push val onto the stack s and return 1,
// otherwise simply return 0 to indicate a failure of the push operation
void push(Stack& s, char val) {
if (s.top < s.capacity)
s.store[s.top++] = val;
else
cerr << "Error: stack full, can't push" << endl;
}
char pop(Stack& s) {
if (s.top > 0)
return s.store[--s.top];
else {
cerr << "Error: pop from an empty stack" << endl;
return 0;
}
}
int isempty(Stack& s) {
return s.top == 0;
}
void check_balance(char line[]) {
char c, temp;
Stack expr;
create(expr);
istrstream is(line);
bool flag = true;
while (is >> c) {
if (c == '(') //열린 기호일 때 스택에 삽입
push(expr, c);
else if ((c == ')') && !isempty(expr)) { //스택이 비어있지 않을 때 닫는 기호
temp = pop(expr);
if ((c == ')' && temp == '('))
flag = true;
else {
flag = false;
break;
}
}
else { //스택이 비어있을 때 닫는 기호
flag = false;
break;
}
}
if (!isempty(expr)) //문자열이 끝나고도 스택에 남아 있는 경우
flag = false;
if (!flag)
cout <<"NO" << endl;
else
cout << "YES" << endl;
}
int main() {
int n;
char line[LINESIZE], c;
string str;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> line;
check_balance(line);
}
}
'무지성 공부방 > 알고리즘 해결' 카테고리의 다른 글
[BOJ_C++] 5692번 : 팩토리얼 진법 (0) | 2021.06.30 |
---|---|
[BOJ_C++] 1654번 : 랜선 자르기 (0) | 2021.06.27 |
[BOJ_C++] 2164번 : 카드2 (0) | 2021.03.11 |
[BOJ_C++] 11399번 : ATM (0) | 2021.03.11 |
[BOJ_C++] 2798번 : 블랙잭 (0) | 2021.03.03 |