Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- baekjoon #boj #c++
- 플러터 #flutter #restful #rest api
- 로컬저장소 #이름변경
- 비주얼스튜디오 #코드스니펫
- flutter #git
- firebase #파이어베이스
- 유데미 #udemy #웅진씽크빅 #스나이퍼팩토리 #인사이드아웃 #미래내일일경험 #프로젝트캠프 #부트캠프 #react #리액트프로젝트 #프론트엔드개발자양성과정 #개발자교육과
- unity #2d-game #minigame #vscode
- flutter #상태관리
- baekjoon #백준 #boj
- VS #비주얼스튜디오
- flutter #플러터 #분석
- boj #baekjoon #c++
- flutter #플러터
- flutter #app #취준
- flutter #todolist
- 백준
- flutter #깃
- 백준 #boj #baekjoon
- boj #baekjoon
- 인턴 #프론트엔드 #개발자 #프론트엔드개발자 #취준
- unity #2d-game
- 비주얼 스튜디오 #vs #visual studio
- boj #c++
- git #unity #깃허브
- 백준 #boj
- flutter #firebase #플러터 #파이어베이스 #연동
- 백준 #c++
- #유데미 #udemy #웅진씽크빅 #스나이퍼팩토리 #인사이드아웃 #미래내일일경험 #프로젝트캠프 #부트캠프 #react #리액트프로젝트 #프론트엔드개발자양성과정 #개발자교육과정
- Flutter
Archives
- Today
- Total
cococo-coding
[C++ 풀이] 10866번. 덱 본문
풀이
덱(Deque)은 double ended queue 자료구조로
큐(Queue)가 앞뒤로 데이터 추가 및 삭제가 가능해진 구조이다.
덱의 기본적인 함수를 이용해볼 수 있는 문제이다.
명령은 총 8가지가 있으며, 각 명령에 따라 필요한 동작을 취한다.
1,2번은 입력받는 데이터를 num으로 선언하고 받았다.
1. push_front X (앞에 X 삽입)
num을 받아 덱의 앞에 삽입한다. dq.push_front(X);
2. push_back X (뒤에 X 삽입)
num을 받아 덱의 뒤에 삽입한다. dq.push_back(X);
3. pop_front (앞 데이터 삭제)
덱이 비어있지 않다면 삭제할 앞의 데이터를 dq.front()로 출력한 뒤에 dq.pop_front()로 삭제해준다.
4. pop_back (뒤 데이터 삭제)
덱이 비어있지않다면 삭제할 뒤 데이터를 dq.back()으로 출력한 뒤에 dq.pop_back()으로 삭제해준다.
5. size (덱의 사이즈)
덱의 사이즈를 리턴한다. dq.size()
6. empty (덱이 비어있는지 확인)
덱이 비어있는지 dq.empty()로 확인해서, 비어있다면 1을, 아니라면 0을 출력한다.
7. front (덱의 앞 데이터 리턴)
덱이 비어있으면 -1을 출력하고, 아니라면 덱의 앞 데이터를 dq.front()로 출력한다.
8. back (덱의 뒤 데이터 리턴)
덱이 비어있다면 -1을 출력하고, 아니라면 덱의 뒷 데이터를 dq.back()으로 출력한다.
코드
#include <iostream>
#include <deque>
using namespace std;
/*
1. n을 입력받는다.
2. n개의 명령에 따라 출력한다.
*/
int main() {
//1
int n;
cin >> n;
//2
deque <int> dq;
string s; //명령어 받을 s
while (n--) {
cin >> s;
int num; //push_front와 push_back할 때 쓸 정수
if (s == "push_front") {
cin >> num;
dq.push_front(num);
}
else if (s == "push_back") {
cin >> num;
dq.push_back(num);
}
else if (s == "pop_front") {
if (dq.empty()) cout << "-1" << '\n';
else {
cout << dq.front() << '\n';
dq.pop_front();
}
}
else if (s == "pop_back") {
if (dq.empty()) cout << "-1" << '\n';
else {
cout << dq.back() << '\n';
dq.pop_back();
}
}
else if (s == "size") {
cout << dq.size() << '\n';
}
else if (s == "empty") {
if (dq.empty()) cout << "1" << '\n';
else cout << "0" << '\n';
}
else if (s == "front") {
if (dq.empty()) cout << "-1" << '\n';
else cout << dq.front() << '\n';
}
else if (s == "back") {
if (dq.empty()) cout << "-1" << '\n';
else cout << dq.back() << '\n';
}
}
return 0;
}
'[BOJ] 코드 모음 > C++_learning 문제집' 카테고리의 다른 글
[C++ 풀이] 11656번. 접미사 배열 (0) | 2024.01.19 |
---|---|
[C++ 풀이] 7568번. 덩치 (0) | 2024.01.19 |
[C++ 풀이] 10845번. 큐 (0) | 2024.01.19 |
[C++ 풀이] 10828번. 스택 (0) | 2024.01.19 |
[C++ 풀이] 2484번. 주사위 네개 (0) | 2024.01.18 |