• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    해결됨

54번 스택 관련 궁금증이 있습니다.

20.07.24 20:39 작성 조회수 159

3

안녕하세요 스택 관련 궁금증이 있습니다.

NO일때 break 대신에 곧바로 return 하면 flag 변수를 사용하지 않아도 같은 결과가 나오는것 같습니다

new로 할당하고 delete 하지 않으면 메모리에 남아있는 것처럼 스택도 들어있는 값들을 모두 pop하지 않으면 문제가 발생하거나 안좋을까요...??

int main() {
	//freopen("input.txt", "rt", stdin);
	stack<char> s;
	char a[50];
	int i;
	scanf("%s", &a);
	for (i = 0; a[i] != '\0'; i++) {
		if (a[i] == '(') {
			s.push(a[i]);
		}
		else {
			if (s.empty()) {
				printf("NO\n");
				return 0;
			}
			else s.pop();
		}
	}
	if (s.empty()) printf("YES\n");
	else printf("NO\n");
	return 0;
}

답변 1

답변을 작성해보세요.

2

안녕하세요^^

답을 출력하고 바로 리턴해서 끝내는 게 좋겠습니다. 코딩테스트는 큰 응용프로그램을 만드는 작업이 아니라 답만 빠르게 출력하고 끝내주면 됩니다. 굳이 스택에 남아있는 자료까지 생각할 필요는 없어 보입니다.