본문 바로가기
728x90

스택3

[c++] 백준 쇠막대기 (10799) 문제 https://www.acmicpc.net/problem/10799 레이저로 쇠막대기를 분리하는 문제 쇠막대기와 레이저 모두 문자열 '('와 ')'로 나타냄 풀이 문자열을 입력 받고, 하나씩 문자를 가져와 '('일 경우에 스택에 쌓음 ')'가 나왔을 시, 레이저로 간주하고 이전까지 쌓은 스택의 사이즈만큼 count. (잘린 쇠막대기 개수) ')'가 나왔을 시, 레이저가 아닌 경우, 쇠막대기를 닫는 경우를 위해 layzer라는 변수를 설정해서 on/off 해줌 layzer=0일 경우, 가장 안쪽의 쇠막대기가 닫히면서 count+1해준다. 코드 알게 된 점 스택의 활용 예외처리가 너무 힘들다 스택 문제라는 틀에 갇혀서 문제풀이가 더 어려워진 것 같다. 아니면 내가 스택을 잘 활용하지 못하거나. git .. 2023. 7. 23.
[c++]백준 균형잡힌 세상(4949), stack, 반례모음 문제 https://www.acmicpc.net/problem/4949 스택으로 수식의 괄호쌍이 올바른지 확인하는 문제 문장에서 소괄호("()") 와 대괄호("[]")로 2종류가 올바르게 열리고, 닫혔는지 판단해야 함 반례모음 ([(]]) no ([)]). . no (())) . no [(()]). . no ( no ( . no 풀이 괄호만 저장하는 스택을 만든다 괄호가 열릴 때, "(" or "["만 스택에 저장한다. 닫힘 괄호가 들어올 때, 현재 스택의 top()이 해당 괄호랑 맞는 쌍인지 판단하고, 맞으면 pop으로 지워주고, 아니면 "no"를 출력한다. 또한, 스택이 비어있는 상태(empty)일 때에도 "no" 출력. 문장의 마지막 "."이 들어올 때, 스택이 비어있으면 "yes" 출력. 단, 스.. 2023. 7. 14.
[c++] 스택 - 일반구현 vs STL<stack> First in Last out 구조. Last out 원소를 가르키는 pos 필요, pop시 pos-- 1. 일반구현 2. STL stack https://github.com/intlabSeJun/c-plus-coding-test/tree/master/5.%20%EC%8A%A4%ED%83%9D 2023. 7. 13.
728x90