굥뷰를 햡시댜
[Programmers] 올바른 괄호 본문
https://programmers.co.kr/learn/courses/30/lessons/12909
음.. 벡터를 사용했고 스택의 원리를 이용했다.
(일 경우 벡터에 추가하고 )일 경우 벡터에서 pop_back() 연산을 수행한다.
대신, )일 경우 벡터에 아무 값도 없을 때 바로 false를 리턴하게 했다.
for문이 다 끝났을 경우 벡터에 아무 값도 없을 때 true 리턴을 하게 했다.(올바른 괄호의 경우)
#include<string>
#include <iostream>
#include <vector>
using namespace std;
bool solution(string s)
{
bool answer = false;
bool flag = false;
vector<char> vec;
if(s[0] == '(' && s[s.length()-1] == ')') {
for (int i = 0; i < s.length(); i++) {
if (s[i] == '(') vec.push_back(s[i]);
else {
if (vec.empty()) {
flag = true;
break;
}
else vec.pop_back();
}
}
}
else {
flag = true;
answer = false;
}
if (!flag) {
if (vec.empty()) {
answer = true;
}
}
return answer;
}
'알고리즘 문제 풀이 > KaKao 문제 풀이' 카테고리의 다른 글
[Programmers] 전화번호 목록 (0) | 2019.10.11 |
---|---|
[Programmers] 타겟 넘버 (0) | 2019.10.11 |
[Programmers] 네트워크 (0) | 2019.10.11 |
[Programmers] 단어 변환 (0) | 2019.10.11 |
[Programmers] 영어 끝말잇기 (0) | 2019.10.08 |
Comments