-
카테고리
-
세부 분야
알고리즘 · 자료구조
-
해결 여부
미해결
질문이있습니다!!
23.05.18 07:40 작성 조회수 308
0
안녕하세요 선생님 좋은 수업 제공해 주셔서 감사드리다는 말씀 드립니다.
제가 작성한 코드에 문제를 못찾겠어서 질문을 드립니다.
저는 stack에 문자를 쌓고 나중에 pop을 통해 빼서 '('이 나오면 cnt++를하고 아니면 빼기를 통해 마지막에 0이 나오면 yes no를 나오게 하여 작성하였습니다. 그런데 계속 no만 나와 그 이유를 알고자 합니다. 답변 부탁드립니다.
답변을 작성해보세요.
0
sang ji Choi
질문자2023.05.19
여기 있습니다 선생님
int main()
{
stack<char> s;
char a[50];
cin >> a;
int flag = 1;
for (int i = 0; a[i] != '\0'; i++)
{
if (a[i] == '(')
{
s.push(a[i]);
}
else
{
if (s.empty())
{
cout << "NO";
flag = 0;
break;
}
else
{
s.pop();
}
}
}
if (s.empty() && flag == 1)
{
cout << "yes";
}
else if (!s.empty() && flag == 1)
{
cout << "no";
}
return 0;
}
0
김태원
지식공유자2023.05.18
안녕하세요^^
코드를 보면 정상적인 괄호는 yes라고 나올 코드로 보이는데요.
하지만 ")(" 이런 입력의 괄호도 yes로 나올것 같습니다.
no만 나온다는 코드를 풀코드로 텍스트 형태로 올려주세요. 제가 한 번 디버그해보겠습니다.
답변 2