일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- sql
- deque
- union_find
- math
- 스프링부트
- Calendar
- 힙덤프
- List
- Union-find
- alter
- JPA
- BFS
- NIO
- string
- 큐
- Properties
- 리소스모니터링
- CSS
- date
- dfs
- html
- 스택
- spring boot
- GC로그수집
- javascript
- scanner
- set
- Java
- priority_queue
- map
- Today
- Total
목록큐 (3)
매일 조금씩
쉽게 생각했지만 반례를 잘생각해야하는 문제였다. #include #include #include #include using namespace std; int n; int main(void) { ios_base::sync_with_stdio(0); cin.tie(0);//cin 실행속도 향상 queue que; cin >> n; for (int i = 1; i
큐의 명령어를 익히는 간단한 문제이다. #include #include #include #include using namespace std; int n; int main(void) { ios_base::sync_with_stdio(0); cin.tie(0);//cin 실행속도 향상 string q; queue que; cin >> n; for (int i = 0; i > q; if (q == "push") { int p = 0; cin >> p; que.push(p); } else if (q == "pop") if (que.empty()) cout
스택과 큐를 활용한 문제이다. 여러가지 예외만 잘처리해주면 쉬운 문제였다. 중요 포인트 실행 중간에 불가능이 나오면 "NO"만 출력해야한다. 결과를 한번에 출력해야하는데 역순 출력이 아니므로 stack이 아닌 queue에 출력할 연산들을 담는다. push되는 숫자는 1부터 오름차순이고, pop된 숫자는 다시 push 안됨. (push 되는 숫자를 따로 두지 않고 stack의 용량과 같은 값으로 두면 에러가남) 여기선 num으로 둔다. s.top()과 inp을 비교햇을 때, top이 더 크면 불가능 (pop은 입력된 숫자와 같은 숫자만 가능하기때문) s.top()이 inp값보다 작을 땐, 같거나 커질 때 까지 push(num) 해주는데 그때마다 num++; 한다. 5번에서 크면 불가능, 같으면 pop한다...