#1. 문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
#2. 풀이
1. stack
[Basic C++] #64_stack
[Basic C++] #64_stack C++에서 제공하는 stack 클래스에 대해 알아보겠습니다. Overview 개념 선언 멤버 함수 예제 #0. 개념 1. Stack C++에서 제공하는 stack은 LIFO 데이터 구조를 구현하는 STL 컨테이너입니다. s
webddevys.tistory.com
스택은 후입 선출 방식으로 동작하는 선형 자료구조입니다. 스택 자료구조는 데이터 목록의 한쪽 끝에서만 접근/삽입/삭제 작업이 이루어지는 것이 특징입니다.
2. 괄호 문제는 스택으로!
- '('는 스택에 삽입, ')'일 경우 stack이 비어있다면 실패, stack이 비어있지 않다면 pop() 수행
- 마지막, 스택에 잔여 '('가 남아 있을 경우, 실패.
#3. 코드
/*
@링크:https://school.programmers.co.kr/learn/courses/30/lessons/12909
@문제:올바른 괄호
@설명
1. 스택 활용
*/
#include<string>
#include <iostream>
#include <stack>
using namespace std;
bool solution(string s)
{
bool ans = true;
stack<char> st;
for(auto c : s)
{
if(c == '(')
{
st.push(c);
}
else
{
if(st.empty())
{
ans = false;
break;
}
st.pop();
}
}
if(!st.empty()) ans = false;
return ans;
}