C++/백준 Etc
[c++]백준 균형잡힌 세상(4949), stack, 반례모음
스프링섬머
2023. 7. 14. 19:44
728x90
- 스택으로 수식의 괄호쌍이 올바른지 확인하는 문제
- 문장에서 소괄호("()") 와 대괄호("[]")로 2종류가 올바르게 열리고, 닫혔는지 판단해야 함
반례모음
([(]]) no |
([)]). . no |
(())) . no |
[(()]). . no |
( no |
( . no |
풀이
- 괄호만 저장하는 스택을 만든다
- 괄호가 열릴 때, "(" or "["만 스택에 저장한다.
- 닫힘 괄호가 들어올 때, 현재 스택의 top()이 해당 괄호랑 맞는 쌍인지 판단하고, 맞으면 pop으로 지워주고, 아니면 "no"를 출력한다. 또한, 스택이 비어있는 상태(empty)일 때에도 "no" 출력.
- 문장의 마지막 "."이 들어올 때, 스택이 비어있으면 "yes" 출력. 단, 스택이 비어 있지 않으면 "no"를 출력해야 한다.
코드
getline()에 대해서 자세히 알고 싶으면 아래 링크,
https://forward-gradually.tistory.com/26
c++ cin.getline() vs getline() 및 cin.ignore() 정리
1. cin.getline(char 배열, 넣을 문자수) 넣을 문자 수만큼만 char 배열에 저장한다. 저장은 각각의 알파벳이 원소 하나하나에 할당됨. 공백도 같이 저장한다. # 넣을 문자 만큼 받는다. 2. getline(cin, string
forward-gradually.tistory.com
알게 된 점
- 역시 예외처리가 가장 중요..
- 스택의 활용에 대해서 알게됨
git 코드
728x90