More actions
느낀점 및 설명
.. 열심히 만들어서 완성했을때.. 어쩐지 쉽게 끝나는 듯 했다.. 그러나!! 알고보니 왼쪽과 오른쪽을 꺼꾸로보고 생각했던것... .. 한번 생각하기는 쉽지만, 생각을 고치기는 어렵다고.. 고치는데 머리아퍼따.ㅎ 이 소스는 2번씩 뒤집는걸 기본으로 한다. (예외적으로 끝에 있을때는 한번 안뒤집는다.) 만든이의 귀차니즘으로 한회의 계산을 줄인 소스..후후후.. 그럼..ㅎ
소스
#include <stdio.h>
#include <string.h>
void print_flap(char*, int);
const int SIZE_BUFFER=100;
void main()
{
while(1)
{
int number_cake=0;
char cakes_size[SIZE_BUFFER];
printf("팬케이크의 크기를 순서대로 입력해주세요. (0은 종료 또는 입력완료)\n>>");
while (1)
{
scanf("%d",cakes_size+number_cake);
if (0==cakes_size[number_cake])
break;
++number_cake;
}
if (0==number_cake)
break;
print_flap(cakes_size, number_cake);
}
}
void print_flap(char* cakes_size, int number_cake)
{
printf ("결과 : ");
for (register int i=number_cake-1; i>=0; --i)
{
int maximum=i;
for (register int j=0; j<=i; ++j)
{
if (cakes_size[maximum]<cakes_size[j])
maximum=j;
}
if (maximum!=i)
{
if (maximum!=0)
printf("%d ",number_cake-maximum);
printf("%d ",number_cake-i);
char temp[SIZE_BUFFER];
strcpy(temp,cakes_size);
for (register j=0; j<=i; ++j)
{
if (j<=maximum)
cakes_size[j-maximum+i]=temp[j];
else
cakes_size[i-j]=temp[j];
}
}
}
printf ("0 \n");
}