티스토리 뷰
반응형
programmers.co.kr/learn/courses/30/lessons/12909
⊙ 문제
⊙ 제한사항
⊙ 입출력 예
⊙ 입출력 예 설명
⊙ 문제 접근 과정
백준에 있는 괄호 문제와 비슷한 유형이다.
오히려 더 쉽다.
여러 가지 방법으로 문제에 접근할 수 있다. 내가 떠올리고 접근한 건 2가지이다.
- 카운팅
- 스택
첫번째 문제 접근 : 카운팅
받은 괄호가 열린 괄호면 COUNT UP
닫힌 괄호면 COUNT DOWN
만약 카운트가 음수가 될 경우 바로 FALSE
마지막에는 카운트가 0으로 처음 상태와 동일할 시 TRUE
두번째 문제 접근 : 스택
받은 괄호가 열린 괄호면 PUSH
닫힌 괄호면 POP
만약 스택이 EMPTY 상태이면 FALSE
마지막에는 스택이 0으로 처음 상태와 동일할 시 TRUE
⊙ 문제 풀이
첫번째 문제 풀이 : 카운팅
#include <iostream>
#include <string>
using namespace std;
bool solution(string arr) {
int count =0 ;
for(int i = 0; i<arr.length();i++) {
if(arr[i]=='(') {
count++;
} else if (arr[i]==')') {
count--;
if(count<0) {
return false;
break;
}
}
}
if(count==0) {
return true;
} else {
return false;
}
}
위 코드를 프로그래머스에 제출했더니 아래와 같이 깔끔하게 코드가 정리되었다.
#include<string>
#include <iostream>
using namespace std;
bool solution(string s)
{
int data = 0;
for(int i = 0; i < s.length(); i++) {
if (s[i] == '(')
data++;
else if (s[i] == ')')
data--;
if (data < 0)
return false;
}
return data == 0;
}
두 번째 문제 풀이 : 스택
#include <iostream>
#include <string>
#include <stack>
using namespace std;
bool solution(string s)
{
stack<char> stk;
for (char& c : s) {
if (c == '(')
stk.push(c);
else {
if (stk.empty())
return false;
else
stk.pop();
}
}
return stk.empty();
}
⊙ 마무리
한 가지 문제를 보고 여러 가지 문제 접근방법이 생각나도록 경험치를 쌓자
728x90
반응형
'프로그래머스 > C++ [CPP]' 카테고리의 다른 글
[프로그래머스] 코딩테스트 연습 : 로또의 최고 순위와 최저 순위 - C++[CPP] (0) | 2021.08.09 |
---|---|
[프로그래머스] 코딩테스트 연습 : 내적 - C++[CPP] (0) | 2021.08.07 |
[프로그래머스] 코딩테스트 연습 : 부족한 금액 계산하기 - C++[CPP] (0) | 2021.08.07 |
[프로그래머스] 코딩테스트 연습 : 다단계 칫솔 판매 - C++[CPP] (0) | 2021.07.31 |
[프로그래머스] 코딩테스트 연습 : 최고의 집합 - C++[CPP] (0) | 2021.04.30 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 답
- 우종정
- py
- 정답
- 구현
- 쉽게배우는
- 자바
- java
- 자바스크립트
- C++
- 쉽게배우는자바프로그래밍
- 파이썬
- 운영체제
- BFS
- 알고리즘
- 쉽게 배우는 자바 프로그래밍
- 정렬
- 연습문제
- Python
- 해답
- 문자열
- 풀이
- CPP
- 정리
- OS
- 백준
- 그리디
- 프로그래머스
- Web
- JS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함