조회 수 1895 추천 수 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 518
공지 키보드 화살표값 출력 좋은아빠되기 2016.11.19 1282
공지 원하는 좌표에 값 출력하기 좋은아빠되기 2016.11.19 2602
공지 Python(파이썬) 학습 자료 PDF 1 file 좋은아빠되기 2014.12.10 10583
공지 dev C++ 텍스트 색상변경 WinApi사용(textcolor 대용) 좋은아빠되기 2014.06.07 4939
공지 DEV-C++ 기본 코드 좋은아빠되기 2013.06.19 8526
공지 무료 C++ 컴파일러(윈도우용) DEV-C++ 좋은아빠되기 2013.06.18 19164
공지 이클립스 C++ 설치 파일들 좋은아빠되기 2013.06.18 38072
450 정올 배열1 형성평가9 정승준 2018.09.15 101
449 정올 배열2 형성평가9 정승준 2018.12.01 101
448 정올 배열2 자가진단3 정승준 2018.10.27 103
447 123 : 선택제어문 - 형성평가4 adbdcd123 2018.08.25 104
446 정올 배열1 자가진단5 정승준 2018.09.01 105
445 정올 배열2 자가진단7 정승준 2018.11.10 105
444 정올 배열2 형성평가A 정승준 2018.12.01 105
443 정올 - 문제은행 - 생성 불능 숫자(1184) 조정미 2018.06.23 106
442 반복문 몇번 하는지 초기치(승민) 승민 2016.03.05 108
441 정올 반복제어문3 자가진단6 정승준 2018.08.18 108
440 정올 반복제어문3 자가진단7 정승준 2018.08.25 108
439 536 : 반복제어문1 - 자가진단1 adbdcd123 2018.08.25 108
438 제어문 연습(완성) 선우 2016.03.12 109
437 정올 반복제어문3 형성평가5 정승준 2018.08.25 109
436 배열 3가지 선우 2016.03.19 110
435 121 : 선택제어문 - 형성평가2 adbdcd123 2018.08.25 110
434 정올 배열1 자가진단1 정승준 2018.09.01 113
433 정올 배열1 형성평가1 정승준 2018.09.08 114
432 함수(승민) 승민 2016.08.06 115
431 전전항-전항 계속해서 음수나올때까지 구하기(승민) 승민 2016.05.28 116
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 26 Next
/ 26