Practice #4
Coddy의 스택 - 자료구조 시리즈 #1 코스 레슨. 13개 중 12번째.
최소/최대 스택을 만들어 봅시다!
챌린지
쉬움이전의 Stack 클래스에 다음 두 가지 함수를 추가하세요:
min- 현재 스택에 있는 숫자 중 최솟값을 반환합니다.max- 현재 스택에 있는 숫자 중 최댓값을 반환합니다.
보너스: 각 push 또는 pop 연산 시 스택의 모든 요소를 반복해서 확인하지 않도록 시도해 보세요.
직접 해보기
#include <stdio.h>
#include <string.h>
#include "stack.h"
int main() {
Stack stack;
Stack_init(&stack);
char cmd[16];
while (scanf("%15s", cmd) == 1) {
if (strcmp(cmd, "push") == 0) {
int x;
scanf("%d", &x);
Stack_push(&stack, x);
}
else if (strcmp(cmd, "pop") == 0) {
printf("%d\n", Stack_pop(&stack));
}
else if (strcmp(cmd, "top") == 0) {
printf("%d\n", Stack_top(&stack));
}
else if (strcmp(cmd, "size") == 0) {
printf("%d\n", Stack_size(&stack));
}
else if (strcmp(cmd, "min") == 0) {
printf("%d\n", Stack_min(&stack));
}
else if (strcmp(cmd, "max") == 0) {
printf("%d\n", Stack_max(&stack));
}
}
return 0;
}
스택 - 자료구조 시리즈 #1의 모든 레슨
직접 연습해 보세요: 온라인 C 컴파일러