[4949] 균형잡힌 세상, c++

2019. 8. 18. 19:12·DEV/PS

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

 

4949번: 균형잡힌 세상

문제 세계는 균형이 잘 잡혀있어야 한다. 양과 음, 빛과 어둠 그리고 왼쪽 괄호와 오른쪽 괄호처럼 말이다. 정민이의 임무는 어떤 문자열이 주어졌을 때, 괄호들의 균형이 잘 맞춰져 있는지 판단하는 프로그램을 짜는 것이다. 문자열에 포함되는 괄호는 소괄호("()") 와 대괄호("[]")로 2종류이고, 문자열이 균형을 이루는 조건은 아래와 같다. 모든 왼쪽 소괄호("(")는 오른쪽 소괄호(")")와만 짝을 이룰 수 있다. 모든 왼쪽 대괄호("[")는 오른쪽 대

www.acmicpc.net

한줄 후기 : 오랜만에 코딩하려니 힘들다..

 

 

 

괄호와 매우 비슷한 문제, 다만 '(' 이 괄호와 '[' 이 괄호의 처리를 다르게 해줘야 한다.

처음에 같이 했다가 잘못나와서 다시 보니 스택에서 pop 해줄때 top 원소가 '(' 인지 '['인지 확인해야 한다.

그리고 각 문자열을 돌릴때마다 스택을 empty상태로 만들어줘야한다.

 

#include <iostream>
#include <stack>
#include <string.h>
using namespace std;
stack<char> s;
char str[101];
string check(char str[]);
int main(){
	while(1){
		cin.getline(str,101,'\n');
		if(str[0] == '.')	break;
		else{
			cout << check(str) << endl;
		}
		while(!s.empty())	s.pop();
	}
	return 0;
}
string check(char str[]){
	char ch;
	for(int i=0; i<strlen(str); i++){
		ch = str[i];
		if(ch == '(' || ch =='[')	s.push(ch);
		else if(ch == ')'){
			if(s.empty())	return "no";
			if(s.top()=='(')	s.pop();
			else	return "no";
		}
		else if(ch == ']'){
			if(s.empty())	return "no";
			if(s.top()=='[')	s.pop();
			else	return "no";
		}
	}
	if(s.empty())	return "yes";
	else	return "no";
}

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

[1158] 단어공부, c++  (0) 2019.08.18
[1267] 핸드폰 요금, c++  (0) 2019.08.18
[15947] 아기 석환 뚜루루 뚜루, c++  (0) 2019.07.26
[1904] 01 타일, c++  (0) 2019.07.26
[1003] 피보나치 함수, c++  (0) 2019.07.26
'DEV/PS' 카테고리의 다른 글
  • [1158] 단어공부, c++
  • [1267] 핸드폰 요금, c++
  • [15947] 아기 석환 뚜루루 뚜루, c++
  • [1904] 01 타일, c++
jobchae
jobchae
말하는 감자지만, 코드를 끄적이는 Node.js 백엔드 개발자입니다.
  • jobchae
    JOBCHAE
    jobchae
  • 전체
    오늘
    어제
    • 🚀 JOBCHAE (177)
      • DEV (146)
        • PS (108)
        • Node.js (12)
        • React (3)
        • docker (1)
        • 잡다한 개발 일지 (20)
        • injection (1)
        • CI CD (0)
        • JS, TS (1)
      • 축구 (0)
      • 일상 (19)
      • 영화 (3)
      • 음악 (8)
  • 블로그 메뉴

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

    • PS Github
  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
jobchae
[4949] 균형잡힌 세상, c++
상단으로

티스토리툴바