Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- dp
- ReLU
- 탐색
- Docker
- NeuralNetwork
- 백트래킹
- 프로그래머스
- 백준
- Stack
- 풀이
- dfs
- 캡스톤정리
- Algorithm
- 문제풀이
- sigmoid
- 알고리즘
- 그리디
- 그래프
- C++
- BFS
- DeepLearning
- ios
- 플로이드와샬
- mysql
- Node.js
- Blockchain
- 부르트포스
- Greedy
- 실버쥐
- Swift
Archives
- Today
- Total
개발아 담하자
[프로그래머스/C++] 올바른 괄호 풀이 본문
프로그래머스 : 올바른 괄호
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/12909
문제
괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어
- ()() 또는 (())() 는 올바른 괄호입니다.
- )()( 또는 (()( 는 올바르지 않은 괄호입니다.
'(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요.
제한사항
- 문자열 s의 길이 : 100,000 이하의 자연수
- 문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다
LIFO(Last In First Out) 구조를 따르는 스택 을 사용해서 푸는 문제.
문자열 하나씩 순회해서 여는 괄호 ( 일 경우에는 스택에 push,
닫는 괄호 ) 일 경우에는 스택에서 pop 한다. 이 때 스택이 비어있는 경우 false 를 반환한다.
마지막으로 최종 스택의 크기가 0보다 클 경우 (여는 괄호가 남아있을 경우) false 를 반환, 나머지 경우 true 를 반환한다.
풀이
#include<string>
#include <iostream>
#include <stack>
using namespace std;
bool solution(string s)
{
stack<int> stk;
for(int i=0; i<s.length(); i++){
if(s.at(i) == '('){
stk.push(1);
} else {
if(stk.empty()){
return false;
} else {
stk.pop();
}
}
}
if(stk.empty()){
return true;
}
return false;
}
다 풀고 나서 생각난 건데.. 굳이 스택을 쓸 이유가 없다.
괄호 수는 숫자로 세기만 해도 충분하다
#include<string>
#include <iostream>
using namespace std;
bool solution(string s)
{
int cnt = 0;
for(int i=0; i<s.size(); i++){
if( s.at(i)=='(' ){
cnt++;
} else {
if(cnt<=0){
return false;
} else {
cnt--;
}
}
}
if (cnt==0){
return true;
} else{
return false;
}
}
복잡하게 스택 라이브러리를 가져오지 않아도 문제는 잘 풀린다❗️
풀이 인증
'👩💻 알고리즘 풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/C++] 더 맵게 풀이 (0) | 2020.04.28 |
---|---|
[프로그래머스/C++] 행렬의 곱셈 풀이 (0) | 2020.04.22 |
[프로그래머스/C++] N개의 최소공배수 풀이 (0) | 2020.03.17 |
[프로그래머스/C++] 소수 찾기 풀이 (0) | 2020.03.11 |
[프로그래머스/C++] 서머코딩/윈터코딩(2019) 멀쩡한 사각형 풀이 (0) | 2020.03.11 |