U E D R , A S I H C RSS

Stacks Of Flapjacks/조현태

No older revisions available

No older revisions available



느낀점 및 설명

.. 열심히 만들어서 완성했을때.. 어쩐지 쉽게 끝나는 듯 했다..
그러나!! 알고보니 왼쪽과 오른쪽을 꺼꾸로보고 생각했던것...
.. 한번 생각하기는 쉽지만, 생각을 고치기는 어렵다고..
고치는데 머리아퍼따.ㅎ
이 소스는 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.0260 sec