https://programmers.co.kr/learn/courses/30/lessons/76502
코딩테스트 연습 - 괄호 회전하기
programmers.co.kr
나의 풀이
#include <string>
#include <vector>
#include <stack>
#include <iostream>
using namespace std;
bool check_right(string str) { //올바른 괄호인지 확인
stack<char> s;
for (int i = 0; i < str.size(); i++) {
switch (str[i]) {
case '(':case'[':case'{':
s.push(str[i]);
break;
case ')':
if (s.empty() || s.top() != '(')
return false;
else s.pop();
break;
case ']':
if (s.empty() || s.top() != '[')
return false;
else s.pop();
break;
case '}':
if (s.empty() || s.top() != '{')
return false;
else s.pop();
break;
default:
break;
}
}
return true;
}
int solution(string s) {
int answer = 0;
int size = s.size();
s += s;
if (size % 2 == 1) return 0;
for (int i = 0; i < size; i++) {
string tmp = s.substr(i, size);
if (check_right(tmp)) {
answer++;
}
}
return answer;
}
'전공공부 > 코딩테스트' 카테고리의 다른 글
(c++) 프로그래머스 "2개 이하로 다른 비트" (0) | 2022.04.14 |
---|---|
(c++) 프로그래머스 "이진 변환 반복하기" (0) | 2022.04.13 |
(c++) 프로그래머스 "피로도" (0) | 2022.04.13 |
(c++) 프로그래머스 "[1차] 프렌즈4블록" (미완성) (0) | 2022.04.13 |
(c++) 프로그래머스 "가장 큰 사각형 찾기" (0) | 2022.04.12 |