큰돌님 조금 다르게 코드를 작성했는데 한번 봐주시면 감사하겠습니다!
302
정Logan
작성한 질문수 12
1
#include<bits/stdc++.h>
using namespace std;
string a;
bool check(string s) {
// (과 [를 담을 stack
stack<char> cstk;
//만약 ([이면 무조건 담고 그렇지 않은 경우들 체크 , 문자들이 들어가기 때문에 특정 조건에 맞는 선언으로 해야한다. else를 쓰지 않는 방향으로
for(char c : s ) {
if( c == '(' || c == '[') cstk.push(c);
// 현재 c가 ), ] 인데 stck이 비어있으면 return false;
if( (c == ')' || c == ']') && cstk.empty()) return false;
// 여기서 위의 조건의 else가 아닌 두가지 경우로 특정지었다.
if( c == ')'){
if(cstk.top() == '(') cstk.pop();
else return false;
}
if( c == ']') {
if(cstk.top() == '[') cstk.pop();
else return false;
}
}
// 다 돌았는데 아무문제없이 cstk.empty면
return cstk.empty();
}
int main () {
while(true) {
// cin과 다른점은 띄어쓰기도 아스키코드로 받아주기 때문에 띄어쓰기가 포함된 문자열도 한번에 받을 수 있다.
getline(cin,a);
if( a == ".") break;
if(check(a)) cout << "yes\n";
else cout << "no\n";
}
}
답변 1
1
굉장히 좋은데요?
잘짜셨어요 ㅎㅎ 주석 좀 달았습니다.
#include<bits/stdc++.h>
using namespace std;
string a;
bool check(string s) {
//good
stack<char> cstk;
// good
for(char c : s ) {
if( c == '(' || c == '[') cstk.push(c);
// 현재 c가 ), ] 인데 stck이 비어있으면 return false;
if( (c == ')' || c == ']') && cstk.empty()) return false;
// 여기서 위의 조건의 else가 아닌 두가지 경우로 특정지었다.
if( c == ')'){
if(cstk.top() == '(') cstk.pop();
else return false;
}
if( c == ']') {
if(cstk.top() == '[') cstk.pop();
else return false;
}
}
//size보다 empty로 간단하게 == good
return cstk.empty();
}
int main () {
while(true) {
//good
getline(cin,a);
if( a == ".") break;
// 모듈화 good
if(check(a)) cout << "yes\n";
else cout << "no\n";
}
}
1-E질문입니다!
0
528
2
3-L 틀린 부분 피드백 부탁드립니다.
0
833
2
1-A문제 순열재귀함수 질문입니다.
0
396
1
1-A 일곱난쟁이문제입니다
0
463
1
문제 풀 때 방향성에 대해
0
807
1
맥에서 vs code로 실행 관련 질문입니다
0
528
1
17071번 메모리 초과
0
388
1
1-C질문입니다!
0
427
2
2-B BFS 시간초과질문
0
636
2
1-O 13번 라인
0
445
1
6-J 놀이공원 문제 질문
0
385
1
구현관련 질문
0
486
1
강의 교안
0
321
1
실력을 더 올리고나서 강의를 보는 것이 맞을까요?
0
549
1
안녕하세요! 재귀함수에 관해서 질문드립니다
0
538
1
1-K
0
480
2
3-G번 질문있습니다.
1
478
3
3-C 실행 시간 질문드립니다.
0
498
1
4-A 문제 풀이 질문있습니다.
0
598
2
비트마스킹 연산자 "1의 보수" 영문 표기법
0
441
1
격자탐색 문제에서 BFS 시간복잡도 질문드립니다.
0
343
1
3-O go 함수 질문 드립니다.
1
450
2
4-A 출력 질문
0
306
1
1주차 1-O 질문드립니다
0
261
1





