조회 수 1930 추천 수 0 댓글 0

#include <stdio.h>
#include <stdlib.h>

char color[5]; //색깔 입력받을 배열 
int num[5]; //숫자 입력받을 배열
int line_num[4][2]={0};

int color_same(void);
int line(void);
void count(void);
void pr(void);
int main(void)
{
	int i, col, li;

	for(i=0; i<5; i++)
		scanf(" %c %d", &color[i], &num[i]);

	col=color_same();
	li=line();

	if(col==5 && li==5) //1. 카드 5장이 모두 같은 색이면서 숫자가 연속적일 때 
		printf("%d", num[4]+900);

	else if(col==5) //4. 카드 5장이 모두 같은 색일 때 
		printf("%d", num[4]+600);

	else if(li==5) //5. 카드 5장의 숫자가 연속적일 때 
		printf("%d", num[4]+500);

	else
	{
		count();

		if(line_num[0][1]==4) //2. 카드 4장의 숫자가 같을 때 
			printf("%d", line_num[0][0]+800);

		else if(line_num[0][1]==3)
		{
			if(line_num[1][1]==2) //3. 카드 3장의 숫자가 같고 나머지 2장도 숫자가 같을 때 
				printf("%d", (line_num[0][0]*10)+line_num[1][0]+700);

			else //6. 카드 3장의 숫자가 같을 때 
				printf("%d", line_num[0][0]+400);
		}

		else if(line_num[0][1]==2)
		{
			if(line_num[1][1]==2) //7. 카드 2장의 숫자가 같고 또 다른 2장의 숫자가 같을 때 
				printf("%d", (line_num[1][0]*10)+line_num[0][0]+300);

			else //8. 카드 2장의 숫자가 같을 때 
				printf("%d", line_num[0][0]+200);
		}
		else //어떤 경우도 해당하지 않을 때 
			printf("%d", num[4]+100);

	}



	return 0;
}

int color_same(void) //숫자가 모두 같은가? 
{
	int i, c=1;

	for(i=1; i<5; i++)
	{
		if(color[0]!=color[i])
			break;
		c++;
	}

	return c;
}

int line(void)
{
	int i, j, aa, c=1;
	char bb;

	for(i=0; i<4; i++) //숫자 크기 순으로 정렬 
	{
		for(j=i+1; j<5; j++)
		{
			if(num[i]>num[j])
			{
				aa=num[i];
				num[i]=num[j];
				num[j]=aa;

				bb=color[i];
				color[i]=color[j];
				color[j]=bb;
			}
		}
	}

	for(i=0; i<4; i++) //숫자가 연속적인가? 
	{
		if(num[i]+1!=num[i+1])
			break;
		c++;
	}

	return c;
}

void count(void) //같은 숫자의 개수 
{
	int i, j, a=0, aa;
	//printf("start \n");
	//pr();
	for(i=0; i<5;)
	{
	//	printf("for i= %d\n", i);
		line_num[a][0]=num[i];
		line_num[a][1]=1;

		for(j=i+1; j<5; j++)
		{
			if(num[i]==num[j])
				line_num[a][1]++;

			else
			{
				i=j;
				a++;
				break;
			}

		}
	//	printf("j= %d \n", j);
	//	printf("for \n");
	//	pr();
	//	system("pause");

		if(a>3 || j>4)
			break;
	}

	for(i=0; i<3; i++)
	{
		for(j=i+1; j<4; j++)
		{
			if(line_num[i][1]<line_num[j][1])
			{
				aa=line_num[i][0];
				line_num[i][0]=line_num[j][0];
				line_num[j][0]=aa;

				aa=line_num[i][1];
				line_num[i][1]=line_num[j][1];
				line_num[j][1]=aa;
			}
		}
	}
//	printf("finish \n");
//	pr();

}
void pr(void)
{
	int i;
	for(i=0; i<4; i++)
	{
		printf("[%d] - %d %d \n", i, line_num[i][0], line_num[i][1]);
	}
	printf("\n\n");
}



List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 글쓰기는 하루 5개, 댓글은 10개만 가능합니다. 좋은아빠되기 2019.02.15 587
공지 키보드 화살표값 출력 좋은아빠되기 2016.11.19 1364
공지 원하는 좌표에 값 출력하기 좋은아빠되기 2016.11.19 2680
공지 Python(파이썬) 학습 자료 PDF 1 file 좋은아빠되기 2014.12.10 10847
공지 dev C++ 텍스트 색상변경 WinApi사용(textcolor 대용) 좋은아빠되기 2014.06.07 5012
공지 DEV-C++ 기본 코드 좋은아빠되기 2013.06.19 8720
공지 무료 C++ 컴파일러(윈도우용) DEV-C++ 좋은아빠되기 2013.06.18 19261
공지 이클립스 C++ 설치 파일들 좋은아빠되기 2013.06.18 38152
330 정올 - 실력키우기 - 문자열 찾기(2514) 조정미 2018.01.03 266
329 정올 - 실력키우기 - 삽입정렬 횟수 세기(1814) 조정미 2018.01.03 336
328 정올 - 실력키우기 - 삽입정렬(1158) 조정미 2018.01.03 303
327 정올 - 실력키우기 - 선택정렬(1146) 조정미 2018.01.03 342
326 정올 - 실력키우기 - 팩토리얼(1309) 조정미 2018.01.02 437
325 정올 - 실력키우기 - 최대공약수와 최소공배수(1658) 조정미 2018.01.02 1345
324 정올 - 실력키우기 - 단어 세기(1516) 조정미 2018.01.02 1015
323 정올 - 실력키우기 - 윤년(2085) 조정미 2017.12.30 250
322 정올 - 실력키우기 - 각 자리수의 합(2812) 조정미 2017.12.27 675
321 정올 - 실력키우기 - 각자리수의 역과 합(1009) 조정미 2017.12.27 496
320 정올 - 실력키우기 - 그릇(2604) 조정미 2017.12.27 588
319 정올 - 실력키우기 - 숫자삼각형(1641) 조정미 2017.12.27 992
318 정올 - 실력키우기 - 별삼각형3(1329) 조정미 2017.12.27 274
317 정올 - 실력키우기 - 별삼각형1(1523) 조정미 2017.12.27 274
316 정올 - 실력키우기 - 마방진(2074) 조정미 2017.12.27 320
315 정올 - 실력키우기 - 주사위 던지기2(1175) 조정미 2017.12.27 607
314 정올 - 실력키우기 - 주사위 던지기1(1169) 조정미 2017.12.23 941
313 정올 - 실력키우기 - 색종이(초) (1438) 조정미 2017.12.23 665
312 정올 - 실력키우기 - 버블정렬(1157) 조정미 2017.12.23 280
» 정올 - 실력키우기 - 카드게임(1311) 조정미 2017.12.23 1930
Board Pagination Prev 1 ... 5 6 7 8 9 10 11 12 13 14 ... 26 Next
/ 26