728x90
● [문제번호 10866] 덱
https://www.acmicpc.net/problem/10866
● 알아야 할 것
: deque 자료구조와 메소드
● 풀이 과정
: deque 자료구조와 메소드 사용을 묻는 간단한 문제
● 주의 할 것
: pop_front(), pop_back() 연산은 반환값이 없으므로 (출력 후 삭제)로 작업
● 참고 할 것
: NULL
● 풀이 코드
#include <bits/stdc++.h>
using namespace std;
deque<int> d;
string cmd;
int N, X;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> N;
for(int n = 0; n < N; n++)
{
cin >> cmd;
if(cmd == "push_front")
{
cin >> X;
d.push_front(X);
}
else if(cmd == "push_back")
{
cin >> X;
d.push_back(X);
}
else if(cmd == "pop_front")
{
if(d.empty())
cout << -1 << "\n";
// pop 연산은 반환이 없으므로 (출력 후 삭제)로 작업
else
{
cout << d.front() << "\n";
d.pop_front();
}
}
else if(cmd == "pop_back")
{
if(d.empty())
cout << -1 << "\n";
// pop 연산은 반환이 없으므로 (출력 후 삭제)로 작업
else
{
cout << d.back() << "\n";
d.pop_back();
}
}
else if(cmd == "size")
{
cout << d.size() << "\n";
}
else if(cmd == "empty")
{
if(d.empty())
cout << 1 << "\n";
else
cout << 0 << "\n";
}
else if(cmd == "front")
{
if(d.empty())
cout << -1 << "\n";
else
cout << d.front() << "\n";
}
else if(cmd == "back")
{
if(d.empty())
cout << -1 << "\n";
else
cout << d.back() << "\n";
}
}
return 0;
}
● [백준] - [알고리즘 기초 1/2] - [200 - 자료구조 1] 문제집
번호 | 문제 번호 | 문제 이름 | 풀이 링크 |
1 | 10828 | 스택 | https://pirateturtle.tistory.com/153 |
2 | 9093 | 단어 뒤집기 | https://pirateturtle.tistory.com/154 |
3 | 9012 | 괄호 | https://pirateturtle.tistory.com/155 |
4 | 1874 | 스택 수열 | https://pirateturtle.tistory.com/156 |
5 | 1406 | 에디터 | https://pirateturtle.tistory.com/158 |
6 | 10845 | 큐 | https://pirateturtle.tistory.com/161 |
7 | 1158 | 요세푸스 문제 | https://pirateturtle.tistory.com/162 |
8 | 10866 | 덱 | https://pirateturtle.tistory.com/164 |
728x90
'Baekjoon > [Code.plus] 알고리즘 기초 1/2' 카테고리의 다른 글
[BOJ/백준] 17298 오큰수 (0) | 2021.07.26 |
---|---|
[BOJ/백준] 10799 쇠막대기 (0) | 2021.07.26 |
[BOJ/백준] 17413 단어 뒤집기 2 (0) | 2021.07.26 |
[BOJ/백준] 1158 요세푸스 문제 (0) | 2021.07.26 |
[BOJ/백준] 10845 큐 (0) | 2021.07.26 |
[BOJ/백준] 1406 에디터 (0) | 2021.07.26 |
[BOJ/백준] 1874 스택 수열 (0) | 2021.07.26 |
댓글