Queue 5

[프로그래머스, c++] 프린터(queue)

[프로그래머스, c++] 프린터(queue) 난이도 Level 2 분류 스택/큐 programmers.co.kr/learn/courses/30/lessons/42587 문제 및 입/출력 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린터를 개발했습니다. 이 새롭게 개발한 프린터는 아래와 같은 방식으로 인쇄 작업을 수행합니다. 1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. 2. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다. 3. 그렇지 않으면 J를 인쇄합니다. 예를 들어, 4개의 ..

프로그래머스 2021.05.29

[알고리즘 이론] 큐(Queue)

큐(Queue) 큐(Queue)는 스택(Stack)과 반대의 개념을 갖고 있다. 스택의 경우, 나중에 들어온 데이터가 먼저 나가는 LIFO 특성을 띄고있는데 큐는 먼저 들어온 데이터가 먼저 나가는 선입선출(FIFO, First-In First-Out) 특성을 띈다. Ex> 매표소에서 표를 사는경우, 가장 먼저온 손님이 먼저 구매하게 된다. Ex> 보통 컴퓨터와 주변기기 사이에는 항상 큐가 존재한다. 그 이유는 컴퓨터의 CPU와 주변기기 사이에는 속도 차이가 있기 때문에 CPU를 효율적으로 사용하기 위하여 큐를 사용해야한다. 선입선출(FIFO: First-In First-Out) : 먼저 들어온 데이터가 먼저 나가는 구조이다. 큐는 뒤(Back,Rear)에서 새로운 데이터가 추가되고 앞(Front)에서 데..

[백준 3055, c++] 탈출(bfs)

문제 번호 3055(https://www.acmicpc.net/problem/3055) 문제 및 입/출력 사악한 암흑의 군주 이민혁은 드디어 마법 구슬을 손에 넣었고, 그 능력을 실험해보기 위해 근처의 티떱숲에 홍수를 일으키려고 한다. 이 숲에는 고슴도치가 한 마리 살고 있다. 고슴도치는 제일 친한 친구인 비버의 굴로 가능한 빨리 도망가 홍수를 피하려고 한다. 티떱숲의 지도는 R행 C열로 이루어져 있다. 비어있는 곳은 '.'로 표시되어 있고, 물이 차있는 지역은 '*', 돌은 'X'로 표시되어 있다. 비버의 굴은 'D'로, 고슴도치의 위치는 'S'로 나타내어져 있다. 매 분마다 고슴도치는 현재 있는 칸과 인접한 네 칸 중 하나로 이동할 수 있다. (위, 아래, 오른쪽, 왼쪽) 물도 매 분마다 비어있는 칸..

백준/BFS 2019.11.21

[백준 2206, c++] 벽 부수고 이동하기(bfs)

문제 번호 2206(https://www.acmicpc.net/problem/2206) 문제 및 입/출력 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로로 이동하려 한다. 최단경로는 맵에서 가장 적은 개수의 칸을 지나는 경로를 말하는데, 이때 시작하는 칸과 끝나는 칸도 포함해서 센다. 만약에 이동하는 도중에 한 개의 벽을 부수고 이동하는 것이 좀 더 경로가 짧아진다면, 벽을 한 개 까지 부수고 이동하여도 된다. 맵이 주어졌을 때, 최단 경로를 구해 내는 프로그램을 작성하시오. 입력 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 1..

백준/BFS 2019.11.21 (1)

[백준 1261, c++] 알고스팟(bfs,deque)

문제 번호 1261(https://www.acmicpc.net/problem/1261) 문제 및 입/출력 알고스팟 운영진이 모두 미로에 갇혔다. 미로는 N*M 크기이며, 총 1*1크기의 방으로 이루어져 있다. 미로는 빈 방 또는 벽으로 이루어져 있고, 빈 방은 자유롭게 다닐 수 있지만, 벽은 부수지 않으면 이동할 수 없다. 알고스팟 운영진은 여러명이지만, 항상 모두 같은 방에 있어야 한다. 즉, 여러 명이 다른 방에 있을 수는 없다. 어떤 방에서 이동할 수 있는 방은 상하좌우로 인접한 빈 방이다. 즉, 현재 운영진이 (x, y)에 있을 때, 이동할 수 있는 방은 (x+1, y), (x, y+1), (x-1, y), (x, y-1) 이다. 단, 미로의 밖으로 이동 할 수는 없다. 벽은 평소에는 이동할 수 ..

백준/BFS 2019.11.19