12789 도키도키 간식드리미 / c++ / Silver3 / 20분
문제 및 코드
접근 방식
자료 구조 / 스택
- 입력을 받았을 때, 우선 스택이 비어있는지 체크
- 비어있지 않다면 스택의 탑이 들어갈 수 있는지 체크
- 들어갈 수 있다면 스택을 pop 하고 들어갈 수 있는 번호 1 증가
- 현재 입력 값이 들어갈 수 있는 지 체크
- 들어갈 수 있다면 들어갈 수 있는 번호 1 증가
- 들어갈 수 없다면 Stack 에 입력값을 push
- 입력을 다 받은 후 스택이 비어 있는지 체크 후, 비어 있지 않다면 스택이 빌 때까지 반복
- 스택의 탑이 들어갈 수 있다면 pop, 들어갈 수 있는 번호 1 증가
- 스택의 탑이 들어갈 수 없다면 “Sad\n” 출력 후 종료
- 스택도 다 비었다면, 전부 들어간 것이므로 “Nice\n” 출력
다시 생각해 볼 점
- 스택의 값이 다시 배열로 돌아갈 수 없다는 조건을 처음에 발견하지 못해서 시간을 소모했다. 문제를 제대로 읽는 습관을 들여야겠다.
- 스택의 성질만 안다면 쉽게 풀 수 있는 문제였다.