728x90
0. [c++] 백준 - |
https://www.acmicpc.net/problem/18258
1. 풀이 |
그냥 생각의 흐름대로 코드를 나열해주었다.
이 문제에서 큐는 6가지 동작을 수행하도록 설계해주어야 한다.
뭐, 큐를 직접 만들어서 구현하는 것도 나쁘진 않았겠지만, 그냥 편하게 deque라이브러리를 활용해주었다.
입력으로 들어온 string에 맞게 각 기능을 수행하도록 설계하면 완료!
처음에 시간초과가 발생하여서 endl -> "\n"으로 변경해주고 cin.tie(0), cin.sync_with_stdio(0)을 추가해주었다.
2. 소스코드 |
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | #include<iostream> #include<deque> #include<string> using namespace std; int N; string a; deque<int> arr; int main() { cin.tie(0); cin.sync_with_stdio(0); cin >> N; int temp; for (int i = 0;i < N;i++) { cin >> a; if (a == "push") { cin >> temp; arr.push_back(temp); } else if (a == "pop") { if (!arr.empty()) { cout << arr.front() << "\n"; arr.pop_front(); } else cout << -1 << "\n"; } else if (a == "size") { cout << arr.size() << "\n"; } else if (a == "empty") { if (arr.empty()) cout << 1 << "\n"; else cout << 0 << "\n"; } else if (a == "front") { if (arr.empty()) cout << -1 << "\n"; else cout << arr.front() << "\n"; } else if (a == "back") { if (arr.empty()) cout << -1 << "\n"; else cout << arr.back() << "\n"; } } } | cs |
3. 참고 |
질문이나 지적 있으시면 댓글로 남겨주세요~
도움 되셨으면 하트 꾹!
'<백준> > |c++| easy' 카테고리의 다른 글
[C++] 백준 5543 - 상근날드(if) (0) | 2020.03.04 |
---|---|
[c++] 백준 15651 N과 M(3) (백트래킹인데 조금 수정) (0) | 2020.01.10 |
[c++] 백준 10870 - 피보나치 수 5(재귀대신 반복) (0) | 2020.01.09 |
[c++] 백준 15927 - 회문은 회문아니야!!(palindrome, 회문) (0) | 2019.09.25 |
[c++] 백준 2630 - 색종이 만들기(분할 정복) (0) | 2019.08.29 |