250x250
반응형
Notice
Recent Posts
Recent Comments
Link
N
(프로그래머스 c++)괄호 회전하기 본문
728x90
반응형
programmers.co.kr/learn/courses/30/lessons/76502?language=cpp
스택을 이용한 문제 풀이.
s를 왼쪽으로 s.size() 만큼 회전하면서 올바른 괄호인지 확인한다.
바깥 for문은 회전을 위한 for문.
안쪽 for문은 s의 괄호가 올바른 괄호인지 스택을 이용해 확인하는 for문이다.
스택이 비어져있으면 answer++,
비어있지 않으면 올바른 괄호가 아니기 때문에 아무런 행동도 하지 않는다.
#include <string>
#include <vector>
#include <stack>
#include <queue>
using namespace std;
int solution(string s) {
int answer = 0;
queue<char> q;
int size = s.size();
for(int i = 0; i < size; i++){
stack<char> stk;
for(int j = 0; j < size; j++){
if(s[j] == '[' || s[j] == '(' || s[j] == '{'){
stk.push(s[j]);
}
else{
if(!stk.empty()){
if((s[j] == ']' && stk.top() == '[') || (s[j] == ')' && stk.top() == '(') || (s[j] == '}' && stk.top() == '{')){
stk.pop();
}
else{
stk.push(s[j]);
}
}
else{
stk.push(s[j]);
}
}
}
if(stk.empty()){
answer++;
}
s = s.substr(1) + s[0];
}
return answer;
}
728x90
반응형
'프로그래머스 알고리즘 > 2단계' 카테고리의 다른 글
(프로그래머스 JS)게임 맵 최단거리 (0) | 2021.05.12 |
---|---|
(프로그래머스 JS)괄호 회전하기 (0) | 2021.05.12 |
(프로그래머스 JS KAKAO)메뉴 리뉴얼 (0) | 2021.05.11 |
(프로그래머스 JS)짝지어 제거하기 (0) | 2021.05.11 |
(프로그래머스 JS) 124 나라의 숫자 (0) | 2021.05.10 |