# μλ£κ΅¬μ‘°
18258. ν2
μ μλ₯Ό μ μ₯νλ νλ₯Ό ꡬνν λ€μ, μ λ ₯μΌλ‘ μ£Όμ΄μ§λ λͺ λ Ήμ μ²λ¦¬νλ νλ‘κ·Έλ¨μ μμ±νμμ€.
λͺ λ Ήμ μ΄ μ¬μ― κ°μ§μ΄λ€.
- push X: μ μ Xλ₯Ό νμ λ£λ μ°μ°μ΄λ€.
- pop: νμμ κ°μ₯ μμ μλ μ μλ₯Ό λΉΌκ³ , κ·Έ μλ₯Ό μΆλ ₯νλ€. λ§μ½ νμ λ€μ΄μλ μ μκ° μλ κ²½μ°μλ -1μ μΆλ ₯νλ€.
- size: νμ λ€μ΄μλ μ μμ κ°μλ₯Ό μΆλ ₯νλ€.
- empty: νκ° λΉμ΄μμΌλ©΄ 1, μλλ©΄ 0μ μΆλ ₯νλ€.
- front: νμ κ°μ₯ μμ μλ μ μλ₯Ό μΆλ ₯νλ€. λ§μ½ νμ λ€μ΄μλ μ μκ° μλ κ²½μ°μλ -1μ μΆλ ₯νλ€.
- back: νμ κ°μ₯ λ€μ μλ μ μλ₯Ό μΆλ ₯νλ€. λ§μ½ νμ λ€μ΄μλ μ μκ° μλ κ²½μ°μλ -1μ μΆλ ₯νλ€.
μ λ ₯
첫째 μ€μ μ£Όμ΄μ§λ λͺ λ Ήμ μ N (1 ≤ N ≤ 2,000,000)μ΄ μ£Όμ΄μ§λ€. λμ§Έ μ€λΆν° Nκ°μ μ€μλ λͺ λ Ήμ΄ νλμ© μ£Όμ΄μ§λ€. μ£Όμ΄μ§λ μ μλ 1λ³΄λ€ ν¬κ±°λ κ°κ³ , 100,000λ³΄λ€ μκ±°λ κ°λ€. λ¬Έμ μ λμμμ§ μμ λͺ λ Ήμ΄ μ£Όμ΄μ§λ κ²½μ°λ μλ€.
μΆλ ₯
μΆλ ₯ν΄μΌνλ λͺ λ Ήμ΄ μ£Όμ΄μ§ λλ§λ€, ν μ€μ νλμ© μΆλ ₯νλ€.
μμ μ λ ₯1
15
push 1
push 2
front
back
size
empty
pop
pop
pop
size
empty
pop
push 3
empty
front
μμ μΆλ ₯1
1
2
2
0
1
2
-1
0
1
-1
0
3

νμ΄
μ΄μ μ μ΄ ν κ΄λ ¨ μ½λμ λΉμ·νμ§λ§ κ·Έλλ‘ νλ©΄ μκ° μ΄κ³Όκ° λμ νμ ν¬κΈ°λ₯Ό λλ Έλ€.
λν front λͺ λ Ήμ΄μΌ λ νκ° λΉμ΄μλ κ²½μ°μλ -1μ μΆλ ₯νκ³ κ·Έ μΈμ κ²½μ°μλ κ°μ₯ μμ μμλ₯Ό μΆλ ₯νλλ‘ if else λ¬Έμ μμ±ν΄μ£Όμλ€. λ§μ°¬κ°μ§λ‘ back λͺ λ Ήμ΄μΌ λ νκ° λΉμ΄μλ κ²½μ°μλ -1μ μΆλ ₯νκ³ , κ·Έ μΈμ κ²½μ°μλ κ°μ₯ λ€μ μμλ₯Ό μΆλ ₯νλλ‘ μμ±ν΄μ£Όμλ€.
main ν¨μμμλ strcmpν¨μλ₯Ό μ¬μ©ν΄μ λ¬Έμμ΄μ λΉκ΅ν΄μ κ·Έ κ°μ΄ 1μΈ κ²½μ° κ·Έμ λ§λ ν¨μλ₯Ό μ€ννλλ‘ νλλ°, μ΄λ λ°νκ°μ΄ 1μΌ λ μ€νλκΈ° μν΄ !λ μμ λΆμ¬μ£Όμλ€.
#include <stdio.h>
#include <string.h>
int queue[2000001];
int front = 0, rear = -1;
void push(int data){
queue[++rear] = x;
}
void pop(void){
if(rear - front + 1 == 0)
printf("%d\n", -1);
else
printf("%d\n", queue[front++]);
}
void size(void){
printf("%d\n", rear-front+1);
}
void empty(void){
if(rear - front + 1 != 0)
printf("%d\n", 0);
else
printf("%d\n", 1);
}
int main(void){
int n, i, data;
char c[6];
scanf("%d", &n);
for(i = 0; i < n; i++){
scanf("%s", c); // λͺ
λ Ή μ
λ ₯
if(!strcmp(c, "push")){
scanf("%d", &data);
push(x);
}else if(!strcmp(c, "pop"))
pop();
else if(!strcmp(c, "size"))
size();
else if(!strcmp(c, "empty"))
empty();
else if(!strcmp(c, "front")){
if(rear - front + 1 == 0)
printf("%d\n", -1);
else
printf("%d\n", queue[front]);
}
else if(!strcmp(c, "back")){
if(rear - front + 1 == 0)
printf("%d\n", -1);
else
printf("%d\n", queue[rear]);
}
}
return 0;
}

'λ°±μ€ > C' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| [C] λ°±μ€ 10845λ² (1) | 2022.11.12 |
|---|---|
| [C] λ°±μ€ 10828λ² (0) | 2022.11.11 |
| [C] λ°±μ€ 1065λ² (0) | 2022.11.11 |
| [C] λ°±μ€ 2164λ² (0) | 2022.05.24 |
| [C] λ°±μ€_ 7568λ² (0) | 2022.05.16 |