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

νμ΄)
λͺ λ Ήμ ν΄λΉνλ push, pop, top, size, emptyμ ν΄λΉνλ ν¨μλ₯Ό μ μν΄μ£Όμλ€.
push ν¨μμμλ number λ°°μ΄μ μ λ ₯λ°μ numμ μΆκ°νκ³ ,
pop ν¨μμμλ λ°°μ΄μ μ μκ° λ€μ΄μλ κ²½μ° κ°μ₯ μ΅κ·Όμ pushλ μ μλ₯Ό μΆλ ₯νλλ‘ νλ€.
top ν¨μμμλ λ°°μ΄μ λ€μ΄μλ μ μκ° μμΌλ©΄ κ°μ₯ μ΅κ·Όμ pushλ μ μλ₯Ό μΆλ ₯νλ€.
size ν¨μμμλ νμ¬ λ€μ΄κ° μ μμ κ°μμ ν΄λΉνλ countλ₯Ό μΆλ ₯νλ€.
empty ν¨μμμλ countκ° 0μΌ λ, μ¦ λ°°μ΄μ΄ λΉμ΄μμΌλ©΄ 1μ μΆλ ₯νλλ‘ νλ€.
main ν¨μμμλ ν¬κΈ°κ° 10μΈ stack λ°°μ΄μ μ μΈνκ³ , μ λ ₯ν μ«μλ₯Ό λ£μ λ°°μ΄μ ν΄λΉνλ numberλ°°μ΄μ μ μΈν΄μ£Όμλ€.
strcmpν¨μλ₯Ό μ¬μ©ν΄μ κ°κ°μ λ¬Έμμ΄μ λν΄ λ¬Έμμ΄μ΄ λμΌν κ²½μ° κ·Έμ λ§λ ν¨μλ₯Ό μ€νν΄μ£Όλλ‘ ν΄μ£Όμλ€.
#include <stdio.h>
#include <string.h>
int number[100001];
int count = 0;
//push X
void push(int num) {
number[count] = num;
count++;
}
//pop
void pop() {
if (count != 0) {
count--;
printf("%d\n", number[count]);
number[count] = 0;
}
else
printf("%d\n", -1); // λ§μ½ μ€νμ λ€μ΄μλ μ μκ° μλ κ²½μ°μλ -1μ μΆλ ₯
}
//top
void top() {
if (count != 0)
printf("%d\n", number[count - 1]);
else
printf("%d\n", -1); // μ€νμ λ€μ΄μλ μ μκ° μλ κ²½μ°μλ - 1
}
//size
void size() {
printf("%d\n", count);
}
void empty() {
if (count != 0) {
printf("0\n"); // μ€νμ΄ λΉμ΄μμ§ μμΌλ©΄ 0 μΆλ ₯
}
else { // μ€νμ΄ λΉμ΄μμΌλ©΄ 1 μΆλ ₯
printf("1\n");
}
}
int main() {
int n;
char stack[10];
scanf("%d", &n);
int number[100]; //μ
λ ₯ν μ«μμ stack λ°°μ΄ μμ±
for (int i = 0; i < n; i++) {
scanf("%s", &stack);
if (strcmp(stack, "push") == 0) {
int num;
scanf("%d", &num);
push(num);
}
else if (strcmp(stack, "pop") == 0) {
pop();
}
else if (strcmp(stack, "top") == 0) {
top();
}
else if (strcmp(stack, "size") == 0) {
size();
}
else if (strcmp(stack, "empty") == 0) {
empty();
}
}
}'λ°±μ€ > C' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| [C] λ°±μ€ 18258λ² (1) | 2022.11.12 |
|---|---|
| [C] λ°±μ€ 10845λ² (1) | 2022.11.12 |
| [C] λ°±μ€ 1065λ² (0) | 2022.11.11 |
| [C] λ°±μ€ 2164λ² (0) | 2022.05.24 |
| [C] λ°±μ€_ 7568λ² (0) | 2022.05.16 |