U E D R , A S I H C RSS

Stacks Of Flapjacks/조현태

느낀점 및 설명

.. 열심히 만들어서 완성했을때.. 어쩐지 쉽게 끝나는 듯 했다..
그러나!! 알고보니 왼쪽과 오른쪽을 꺼꾸로보고 생각했던것...
.. 한번 생각하기는 쉽지만, 생각을 고치기는 어렵다고..
고치는데 머리아퍼따.ㅎ
소스는 2번씩 뒤집는걸 기본으로 한다. (예외적으로 끝에 있을때는 한번 안뒤집는다.)
만든의 귀차니즘으로 한회의 계산을 줄인 소스..후후후..
그럼..ㅎ

소스

~cpp 
#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");
}

저에게 할말

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:28:06
Processing time 0.0090 sec