본문 바로가기
프로그래머스

괄호 회전하기 C++

by paysmile 2022. 3. 2.

https://programmers.co.kr/learn/courses/30/lessons/76502

 

코딩테스트 연습 - 괄호 회전하기

 

programmers.co.kr

#include <string>
#include <vector>
#include <stack>

using namespace std;

int solution(string s) {
	int answer = 0;

	for (int i = 0; i < s.size(); i++) {
		
		string tmp;
		for (int k = 0; k < s.size()-1; k++) {
			tmp += s[k + 1];
		}
		tmp += s[0];
		stack<char> q;
		
		for (int k = 0; k < tmp.size(); k++) {
			if (tmp[k] == '[' || tmp[k] == '(' || tmp[k] == '{') {
				q.push(tmp[k]);
			}
			else {
				if (q.empty()) {
					q.push('1');
					break;
				}

				char tops = q.top();
				if (tops == '[' && tmp[k] == ']') {
					q.pop();
				}
				else if (tops == '{' && tmp[k] == '}') {
					q.pop();
				}
				else if (tops == '(' && tmp[k] == ')') {
					q.pop();
				}
				else {
					break;
				}
			}
		}

		if (q.empty()) answer++;
		s = tmp;
	}

	return answer;
}

'프로그래머스' 카테고리의 다른 글

숫자 게임 C++  (0) 2022.03.18
카드 짝 맞추기 C++  (0) 2022.03.06
2개 이하로 다른 비트 C++  (0) 2022.03.02
외벽 점검 C++  (0) 2022.02.21
신고 결과 받기 C++  (0) 2022.02.19