#include
#include
#define PLATE_MAX 50
//원판 최대 개수
struct {
int plate[PLATE_MAX];
int plate_num;

} pole[3];
//기둥 구조체 배열 선언
void printTower() {
//기둥과 원판 모두 출력
int i, j;
for(i=0;i printf("%d: ",i);
if( pole[i].plate_num==0) printf("x");
//기둥에 원판이 없을 경우 x 출력
else {
for(j=0;j {


    printf("%d ",pole[i].plate[j]);
    
}
}
printf("\n");
}
}
int move(int startpole,int endpole) {
if(startpole2||endpole2)
{
exit(0);
}
else if( pole[endpole].plate[pole[endpole].plate_num-1]>=pole[startpole].plate[pole[startpole].plate_num-1])
{
    return 0;
}
else{
    pole[endpole].plate[pole[endpole].plate_num]=pole[startpole].plate[pole[startpole].plate_num-1];
    pole[startpole].plate[pole[startpole].plate_num]=0;
    pole[startpole].plate_num-=1;
    pole[endpole].plate_num+=1;
    return 0;
}
}
int main()
{
int b;
int c,d;
for(int i=0;i {
    pole[i].plate_num=0;
}
scanf("%d",&b);
pole[0].plate_num=b;
for(int i=b;i>0;i--)
{
    pole[0].plate[b-i]=i;
}
printTower();
while(1)
{
    scanf("%d %d",&c,&d);
 move(c,d);
 printTower();

}
return 0;
}

하노이탑 풀고 있음

이 코드에서 pole[1].plate[0]에는 처음 초기화 할 때 넣은 숫자가 항상 있는데 왜 그런거임?

그리고 move 함수에서

else if( pole[endpole].plate[pole[endpole].plate_num-1]>=pole[startpole].plate[pole[startpole].plate_num-1])
{
    return 0;
}

이부분이 제대로 처리가 안됨

도와주세요ㅠㅠ