인프런 커뮤니티 질문&답변

sang ji Choi님의 프로필 이미지
sang ji Choi

작성한 질문수

it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비

54. 올바른 괄호 (STL stack 자료구조 활용)

질문이있습니다!!

작성

·

434

0

안녕하세요 선생님 좋은 수업 제공해 주셔서 감사드리다는 말씀 드립니다.

제가 작성한 코드에 문제를 못찾겠어서 질문을 드립니다.

저는 stack에 문자를 쌓고 나중에 pop을 통해 빼서 '('이 나오면 cnt++를하고 아니면 빼기를 통해 마지막에 0이 나오면 yes no를 나오게 하여 작성하였습니다. 그런데 계속 no만 나와 그 이유를 알고자 합니다. 답변 부탁드립니다.

답변 2

0

sang ji Choi님의 프로필 이미지
sang ji Choi
질문자

여기 있습니다 선생님

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;
}
김태원님의 프로필 이미지
김태원
지식공유자

저는 100점이 나오는 코드로 보입니다. "YES"와 "NO"와 같이 대문자로 출력하면 100점 나올겁니다.

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

코드를 보면 정상적인 괄호는 yes라고 나올 코드로 보이는데요.

하지만 ")(" 이런 입력의 괄호도 yes로 나올것 같습니다.

no만 나온다는 코드를 풀코드로 텍스트 형태로 올려주세요. 제가 한 번 디버그해보겠습니다.

sang ji Choi님의 프로필 이미지
sang ji Choi

작성한 질문수

질문하기