[BOJ알고리즘, C++]#24511_queuestack, 덱

2023. 9. 25. 20:00· 문제 풀이/BOJ 문제 풀이
목차
  1.  
  2. [BOJ알고리즘, C++]#24511_queuestack

 

[BOJ알고리즘, C++]#24511_queuestack

 

BOJ 알고리즘 문제 풀이, 24511번 문제 queuestack

덱을 활용하여 푸는 문제

 


 

Overview

 

  1. 문제
  2. 풀이
  3. 코드

 

#1. 문제

 

 

#2. 풀이

1. 덱

 

[자료 구조]#0_선형 자료구조

[자료 구조] #0_선형 자료구조 선형 자료구조에 대해 알아보겠습니다. Overview 개념 스택 큐 원형 큐 덱 배열 벡터 리스트 이중 연결 리스트 #0. 개념 1. 선형 자료구조? 선형 자료구조는 데이터를 일

webddevys.tistory.com

 

 

[Basic C++] #68_deque

[Basic C++] #68_deque C++의 STL에서 제공하는 deque 컨테이너에 대해 알아보겠습니다. Overview 개념 선언 멤버 함수 예제 #0. 개념 1. 덱? [자료 구조]#0_선형 자료구조 [자료 구조] #0_선형 자료구조 선형 자

webddevys.tistory.com

 

Details

 

  • 덱은 스택과 큐의 특성을 모두 가지고 있는 선형 자료구조로, 목록의 각 양쪽 끝에서 삽입과 제거 연산을 모두 수행할 수 있습니다.

 

2. 스택 + 큐 = 덱

  1. 문제를 해결하기 위해 말 그대로 큐와 스택의 특성을 모두 갖고 있는 덱 자료구조를 활용합니다.
  2. 먼저, Ai = 0 은 큐를 의미하며, Ai = 1 은 스택을 의미합니다. 문제가 제시한 조건에 따르면, 큐는 선입선출 방식으로 동작하는 선형 자료구조로 새롭게 삽입한 데이터가 기존의 데이터를 밀어내고 자리를 차지합니다. 반대로, 스택은 후입선출 방식으로 동작하는 선형 자료구조로 새롭게 삽입한 데이터가 다시 제거됩니다. 최종적으로, Ai = 0, 즉 큐일 경우만 해당 위치의 원소가 새로운 원소로 바뀌며, Ai = 1, 스택일 경우 원소가 바뀌지 않습니다.
  3. 따라서, 주어진 배열에서 "큐" 자료구조를 가지는 위치만 고려합니다.

 

#3. 코드

 

#include <iostream>
#include <deque>
using namespace std;

bool arr[100001];

int main()
{
    ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    
    int N;
    deque<int> dq;
    cin >> N;
    for(int i=0; i<N; i++)
    {
        cin >> arr[i];
    }
    for(int i=0; i<N; i++)
    {
        int tmp;
        cin >> tmp;
        if(arr[i]) continue;
        dq.push_back(tmp);
    }
    
    int M;
    cin >> M;
    while(M--)
    {
        int tmp;
        cin >> tmp;
        dq.push_front(tmp);
        cout << dq.back() << ' ';
        dq.pop_back();
    }
    
    return 0;
}

 

 

 

'문제 풀이 > BOJ 문제 풀이' 카테고리의 다른 글

[BOJ알고리즘, C++]#17298_오큰수, 스택  (0) 2023.09.25
[BOJ알고리즘, C++]#9935_문자열 폭발, 문자열  (0) 2023.09.25
[BOJ알고리즘, C++]#12789_도키도키 간식 드리미, 스택, 큐  (0) 2023.09.24
[BOJ알고리즘, C++]#28279_덱2, deque  (0) 2023.09.24
[BOJ알고리즘, C++]#28278_스택2, stack 컨테이너  (0) 2023.09.24
  1.  
  2. [BOJ알고리즘, C++]#24511_queuestack
'문제 풀이/BOJ 문제 풀이' 카테고리의 다른 글
  • [BOJ알고리즘, C++]#17298_오큰수, 스택
  • [BOJ알고리즘, C++]#9935_문자열 폭발, 문자열
  • [BOJ알고리즘, C++]#12789_도키도키 간식 드리미, 스택, 큐
  • [BOJ알고리즘, C++]#28279_덱2, deque
Hardii2
Hardii2
Hardii2
개발 블로그
Hardii2
전체
오늘
어제
  • 분류 전체보기
    • 알고리즘
    • 웹 개발
      • Node.js
      • React
    • 게임개발
      • DirectX12
      • 관련 지식
      • Unreal C++
      • Unreal 블루프린트
    • 언어
      • Effective C++
      • Basic C++
      • 디자인 패턴
      • 자료구조
      • 기술 질문
    • 문제 풀이
      • BOJ 문제 풀이
      • Programmers 문제 풀이
      • geeksForgeeks 문제 풀이
    • 수학
      • 확률과 통계
      • 게임수학
    • 개인프로젝트
    • 그룹프로젝트
      • PM
      • Dev
    • Github

블로그 메뉴

  • 홈
  • 글쓰기

공지사항

인기 글

태그

  • set
  • 최단 경로
  • 정렬
  • dfs
  • 트리
  • programmers
  • DP
  • 개발
  • unreal
  • 기술 질문
  • Effective C++
  • Unreal Blueprint
  • 그래프
  • C++
  • stl
  • BFS
  • 우선순위 큐
  • 디자인 패턴
  • 알고리즘
  • BOJ

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
Hardii2
[BOJ알고리즘, C++]#24511_queuestack, 덱
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.