10845번: 큐
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
#include <stdio.h>
#include <string.h>
int main()
{
int que[10000]; //큐가 될 배열
int quei = 0;
int first = 0;
int N; //주어지는 명령의 수
scanf("%d", &N);
for (int i = 0; i < N; i++)
{
char cmd[6]; // 입력 배열
scanf(" %s", cmd);
if (strcmp(cmd, "push") == 0) {
int value;
scanf(" %d", &value);
que[quei] = value;
quei++;
}
else if (strcmp(cmd, "pop") == 0) {
if (quei == first) //큐에 들어있는 정수가 없다면
printf("-1\n");
else {
printf("%d\n", que[first]);
first++; //가장 앞에 있는 정수를 빼기
}
}
else if (strcmp(cmd, "size") == 0) {
printf("%d\n", quei-first);
}
else if (strcmp(cmd, "empty") == 0) {
if (quei == first)//큐가 비어있으면
printf("1\n");
else
printf("0\n");
}
else if (strcmp(cmd, "front") == 0) { //가장 앞에 있는 정수 출력
if (quei == first) //큐에 들어있는 정수가 없다면
printf("-1\n");
else
printf("%d\n", que[first]);
}
else if (strcmp(cmd, "back") == 0) { //가장 뒤에 있는 정수 출력
if (quei == first) //큐에 들어있는 정수가 없다면
printf("-1\n");
else
printf("%d\n", que[quei - 1]);
}
}
}
'🧐 Algorithm' 카테고리의 다른 글
[백준 2739번 C/C언어] 구구단 출력 (0) | 2021.01.27 |
---|---|
알고리즘 공부 방법 (0) | 2021.01.27 |
[백준 10828번 C/C언어] 스택 (0) | 2021.01.22 |
[백준 1110번 C/C언어] 더하기 사이클 (0) | 2021.01.22 |
[백준 2442번 2443번 2444번 2446번 Java] 별찍기 5~9 (0) | 2021.01.22 |
10845번: 큐
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
#include <stdio.h>
#include <string.h>
int main()
{
int que[10000]; //큐가 될 배열
int quei = 0;
int first = 0;
int N; //주어지는 명령의 수
scanf("%d", &N);
for (int i = 0; i < N; i++)
{
char cmd[6]; // 입력 배열
scanf(" %s", cmd);
if (strcmp(cmd, "push") == 0) {
int value;
scanf(" %d", &value);
que[quei] = value;
quei++;
}
else if (strcmp(cmd, "pop") == 0) {
if (quei == first) //큐에 들어있는 정수가 없다면
printf("-1\n");
else {
printf("%d\n", que[first]);
first++; //가장 앞에 있는 정수를 빼기
}
}
else if (strcmp(cmd, "size") == 0) {
printf("%d\n", quei-first);
}
else if (strcmp(cmd, "empty") == 0) {
if (quei == first)//큐가 비어있으면
printf("1\n");
else
printf("0\n");
}
else if (strcmp(cmd, "front") == 0) { //가장 앞에 있는 정수 출력
if (quei == first) //큐에 들어있는 정수가 없다면
printf("-1\n");
else
printf("%d\n", que[first]);
}
else if (strcmp(cmd, "back") == 0) { //가장 뒤에 있는 정수 출력
if (quei == first) //큐에 들어있는 정수가 없다면
printf("-1\n");
else
printf("%d\n", que[quei - 1]);
}
}
}
'🧐 Algorithm' 카테고리의 다른 글
[백준 2739번 C/C언어] 구구단 출력 (0) | 2021.01.27 |
---|---|
알고리즘 공부 방법 (0) | 2021.01.27 |
[백준 10828번 C/C언어] 스택 (0) | 2021.01.22 |
[백준 1110번 C/C언어] 더하기 사이클 (0) | 2021.01.22 |
[백준 2442번 2443번 2444번 2446번 Java] 별찍기 5~9 (0) | 2021.01.22 |