https://school.programmers.co.kr/learn/courses/30/lessons/12909
0. Headers
- queue 사용
#include <string>
#include <queue>
using namespace std;
1. 알고리즘
- 첫번째 데이터가 )일 경우 false
bool solution(string s)
{
if (s[0] == ')') return false; // 종료조건
}
- 먼저들어오고 먼저 나오는 FIFO 방식을 사용하는 QUEUE 사용
- 데이터가 ( 일경우 QUEUE에 넣어주고 다른 값일 경우
- 큐가 비었는지 확인 및 비었으면 큐 데이터 삭제
bool solution(string s)
{
if (s[0] == ')') return false;
// queue - FIFO
queue<char> q;
for (auto str : s)
{
if (str == '(') q.push(str); // 큐 데이터 생성
else
{
if (q.empty()) return false; // 큐 비었는지 확인
q.pop(); // 큐 데이터 삭제
}
}
}
- 큐가 비었는지 있는지 확인하는 값을 리턴
bool solution(string s)
{
if (s[0] == ')') return false;
// queue - FIFO
queue<char> q;
for (auto str : s)
{
if (str == '(') q.push(str);
else
{
if (q.empty()) return false;
q.pop();
}
}
return q.empty(); // 큐 데이터 확인
}
2. 완성 코드
#include <string>
#include <queue>
using namespace std;
bool solution(string s)
{
if (s[0] == ')') return false;
// queue - FIFO
queue<char> q;
for (auto str : s)
{
if (str == '(') q.push(str);
else
{
if (q.empty()) return false;
q.pop();
}
}
return q.empty();
}
'C++ Algorithm & Study > C++ & Algorithm Strategies' 카테고리의 다른 글
[Porgrammers] 숫자의 표현 (0) | 2022.12.16 |
---|---|
[Porgrammers] 최솟값 만들기 (0) | 2022.12.16 |
[Programmers] 디펜스 게임 (0) | 2022.12.15 |
[C++] 14 - 기초 문법 공부 일지(Smart Pointer) (0) | 2022.12.11 |
[C++] 13 - 기초 문법 공부 일지(Sort) (1) | 2022.12.08 |