You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
스택에 push하는 순서는 오름차순일 때, 스택으로 주어진 수열을 만들 수 있는가. 있다면 push+, pop-하는 순서 출력, 못하면 NO
해결 과정
while 조건: stack이 빌 때까지로 설정
stack의 맨 위와 todoArr 값이 같으면 일단 stack에서 pop('-'), todoIdx+1 진행 → 이후 stack이 비었는데, pq는 비지 않았다면, 바로 pq 다음 값 push하는 조건 추가
stack의 맨 위와 todoArr 값이 같지 않으면, 먼저pq에 남아 있는 값이 더 없는지 비교 후 없다면 NO로 초기화 후 break -> 조건에 걸리지 않으면pop이 불가하니 push('+') 뿐.
다른 코드 감상 및 배울 점
1부터 n까지임을 이용, FIFO이기 때문에 해당 숫자까지의 수를 전부 stack에 넣어야만 해당 숫자를 pop할 수 있다는 점 이용해 입력 받은 즉시 하위 숫자를 stack에 넣으며 진행 가능.
→ 입력 받은 숫자 이하만큼(number로 어디까지였는지 저장) stack 배열에 추가, stack top과 입력받은 숫자가 같으면 pop, 같지 않으면 불가로 NO 출력 후 return, 입력 완료 후에는 계속 pop 후 char 배열인 answer 바로 출력
궁금하다! 더 공부하고 싶다!
.
하고 싶은 말
입력과 동시에 진행하는 방법을 열심히 생각해 보자!
Stack 사용하지 않고, Stack 문제 풀어내기!
재미있게 풀었다. 이런 것만 슉슉 나오면 얼마나 좋을까~.~ 시간은 쫌 걸렸지만, 그래도 재밌으니까~