본문 바로가기

4

1966 : 프린터 큐 (C++) 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 약간 대충대충 내맘대로 막 짠것 같은 코드 #include #include #include using namespace std; bool compare(int a, int b) { // 내림차순으로 정렬하기 위한 함수 return a > b; } int main() { int testCase; cin >> testCase; for(int t = 0; t > N >> M; int arr[N].. 2021. 2. 17.
11866 : 요세푸스 문제 (C) 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net - 1차 유대-로마 전쟁 당시 요세푸스(Flavius Josephus)는 동료 40명과 함께 로마군에게 포위됐다. 이들은 투항하는 대신, 제비를 뽑아 둥글게 둘러 앉은 후 두 명씩 건너 뛰고 세 번째마다 자살하기로 하였다. 이렇게 하여 39명이 죽은 뒤 요세푸스는 살아남은 동료 1명을 설득하여 투항했고, 훗날 역사가가 되어 이 일을 기록에 남겼다고 한다. (치사한거 아닌가? 지 혼자만 살아남네) 여튼, 큐를 이용하여 풀 수 있는 문제이다. 먼저 큐의 맨 앞에 있는 두명을 맨 뒤로 보내고 맨 앞을 한명 죽이고를 반복하면 되는 문제. 예) 7명의 사람.. 2021. 1. 10.
10845 : 큐 (C) 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net #include #include #define SIZE 10001 int queue[SIZE]; int front = -1, rear = -1; void push(int data) { queue[++rear] = data; } int pop() { if(front == rear) { return -1; } else { return queue[++front]; } } int size() { return rear - front; } int empty(.. 2021. 1. 10.
[백준] 2164번 : 카드2(JAVA) https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 한 장 남을 때까지 반복하게 된다. 우선, 제일 위에 있는 카드를 바닥에 버린다. 그 다음, 제일 위에 있는 카드를 제일 아래에 있는 카드 밑으로 옮긴다. 예를 들어 N=4인 경우를 생각해 보자. 카드는 제일 위에서부터 1234 의 순서로 놓여있다. 1을 버리 www.acmicpc.net 위의 문제는 Baekjoon Online Judge의 단계별로 풀어보기 중 18단계 큐, 덱의 카테고리에 포함되어 있는 문제이다. 큐의 시.. 2019. 11. 17.