[9012] 괄호, C/C++

2019. 7. 22. 18:37·DEV/PS

한줄 후기 : C로 풀 때 개고생한 걸 C++로 이렇게 푸네

 

https://www.acmicpc.net/problem/9012

 

9012번: 괄호

문제 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 부른다. 한 쌍의 괄호 기호로 된 “( )” 문자열은 기본 VPS 이라고 부른다. 만일 x 가 VPS 라면 이것을 하나의 괄호에 넣은 새로운 문자열 “(x)”도 VPS 가 된다. 그리고 두 VPS x 와 y를 접합(conc

www.acmicpc.net

먼저 C 코드

 

#include <stdio.h>
#include <string.h>
#define STACK_SIZE 50
char stack[STACK_SIZE];
int top = 0;

int push(char x);
int pop();
int empty();
int main() {
	char str[50];
	int n,i,k =0;
	scanf("%d", &n);
	while (n > 0) {
		for (i = 0; i < 50; i++)	str[i] = '\0';
		k = 0;
		top = 0;
		scanf("%s", str);
		for (i = 0; i < strlen(str); i++) {
			if (str[i] == '(')	push('(');
			else if (str[i] == ')') {
				if (empty()) {
					k = 1;
					break;
				}
				else	pop();
			}
		}
		n--;
		if (empty() == 1 && k == 0)	printf("YES\n");
		else	printf("NO\n");
	}
	return 0;
}
int push(char x) {
	stack[++top] = x;
}
int pop() {
	return stack[top--];
}
int empty() {
	if (top == 0)	return 1;
	else return 0;
}

보다 싶이 스택에 푸시, 팝 함수를 다 손수 ^^

 

#include <iostream>
#include <stack>
#include <string>
using namespace std;

string VPS(string str);
int main(){
	int T;
	cin >> T;
	while (T--){
		string str;
		cin >> str;
		cout << VPS(str) << endl; 
	}
}
string VPS(string str){
	stack<char> s;
	for(int i = 0; i<str.length(); i++){
		if(str[i]=='('){
			s.push(str[i]);
		}
		else if(str[i]==')'){
			if(s.empty())	return "NO";
			else{
				s.pop();
			}
		}	
	}
	if(s.empty())	return "YES";
	else 	return "NO";
}

 

C++은 스택에 push, pop 같은 거의 모든 라이브러리가 있어 그냥 호출만 하면 되더라 ^^

'DEV > PS' 카테고리의 다른 글

[1152] 단어의 개수, C++  (0) 2019.07.22
[5430] AC, C++  (0) 2019.07.22
[1158] 조세퍼스 문제, C++  (0) 2019.07.22
[1543] 문서 검색, C  (0) 2019.07.20
[1918] 후위 표기식, C  (0) 2019.07.20
'DEV/PS' 카테고리의 다른 글
  • [1152] 단어의 개수, C++
  • [5430] AC, C++
  • [1158] 조세퍼스 문제, C++
  • [1543] 문서 검색, C
jobchae
jobchae
말하는 감자지만, 코드를 끄적이는 Node.js 백엔드 개발자입니다.
  • jobchae
    JOBCHAE
    jobchae
  • 전체
    오늘
    어제
    • 🚀 JOBCHAE (182)
      • DEV (151)
        • PS (108)
        • Node.js (12)
        • React (3)
        • docker (1)
        • 잡다한 개발 일지 (21)
        • injection (1)
        • JS, TS (3)
        • DB (2)
      • 축구 (0)
      • 일상 (19)
      • 영화 (3)
      • 음악 (8)
  • 블로그 메뉴

    • 💻 Github
    • 🙋🏻 Linkedin
    • 📖 방명록
  • 링크

    • PS Github
  • 공지사항

  • 인기 글

  • 태그

    위상정렬
    SOPT
    솝트
    node.js
    BFS
    typescript
    boj
    우선순위큐
    db
    JavaScript
    일상
    nodejs
    렛츠락페스티벌
    알고리즘
    react
    Express
    mongoDB
    PS
    리액트
    DFS
    GitHub
    백준
    개발
    DP
    슬랙
    Nest.js
    앱잼
    슬랙봇
    회고
    이분탐색
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
jobchae
[9012] 괄호, C/C++
상단으로

티스토리툴바