르블랑은 소환사의 협곡에서 [티모, 소라카, 애쉬, 카사딘, 릴리아] 를 메자이의 영혼약탈자 제물로 바치려고 하고있다.
> 메자이의 영혼약탈자의 최대 스택 크기는 7이며, 최대 스택을 넘어가는 경우 push 하지 않는다.
> 메자이의 영혼약탈자는 상대방을 죽일 경우 죽인 상대의 이름 (문자열)을 push 한다.
> 그러나 르블랑이 죽을경우 스택에 쌓여있는 데이터의 절반만 남는다. 르블랑은 다음과 같은 순서로, 상대방을 죽이고 자신이 죽고, 또 죽이고 죽다가 게임이 종료되었다.
소라카 애쉬 (르블랑) 티모 릴리아 카사딘 (르블랑) 티모 애쉬 소라카 릴리아 티모 애쉬 소라카 릴리아 (르블랑) 카사딘
게임이 끝나기 전 메자이의 영혼약탈자의 상태를 스택에 들어간 순서대로 (pop 아님) 출력해보세요
이게 이번 대학과젠데 밑이 내가짠 코드야
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#define MAX 7
typedef char element;
element stack[MAX];
int top = -1;
int is_empty()
{
return (top == -1);
}
int is_full() {
return (top == (MAX - 1));
}
void push(element item) {
if (is_full()) {
return;
}
else stack[++top] = item;
}
element pop() {
if (is_empty()) {
fprintf(stderr, "메자이 0스택\n");
exit(1);
}
else
return stack[top--];
}
void die() {
for (int i = 0; i = top / 2; i--) {
pop();
}
}
int main(void)
{
const char 카사딘 = 'a';
const char 소라카 = 'b';
const char 애쉬 = 'c';
const char 티모 = 'd';
const char 릴리아 = 'e';
push(소라카);
push(애쉬);
die();
push(티모);
push(릴리아);
push(카사딘);
die();
push(티모);
push(애쉬);
push(소라카);
push(릴리아);
push(티모);
push(애쉬);
push(소라카);
push(릴리아);
die();
push(카사딘);
for (int i = 0; i <= top; i++)
printf("%d\n", stack[i]);
}
이거 실행하면 그냥 bca만 나오는데 뭐가 잘못된거야?
die 에서 for loop 이상함
오키 알려줘서 고마워