프로그래밍 알고리즘

[정올 1761] 숫자 야구

꾸준한사람 2023. 1. 5. 05:57
반응형

http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=1035&sca=99&sfl=wr_hit&stx=1761 

 

JUNGOL

 

www.jungol.co.kr

#include <stdio.h>

struct Set {
	int num[3];
	int strike;
	int ball;
};
int N, cnt;
Set QnA[101];

bool Check(int a, int b, int c) {
	for (int i = 0; i < N; i++) {
		int mystrike = 0, myball = 0;
		if (QnA[i].num[0] == a) mystrike++;
		else if (QnA[i].num[1] == a || QnA[i].num[2] == a) myball++;
		if (QnA[i].num[1] == b) mystrike++;
		else if (QnA[i].num[0] == b || QnA[i].num[2] == b) myball++;
		if (QnA[i].num[2] == c) mystrike++;
		else if (QnA[i].num[0] == c || QnA[i].num[1] == c) myball++;

		if (mystrike != QnA[i].strike || myball != QnA[i].ball) return false;
	}

	return true;
}

int main(void) {
	scanf("%d ", &N);
	for (int i = 0; i < N; i++)	{
		scanf("%1d%1d%1d %d %d", &QnA[i].num[0], &QnA[i].num[1], &QnA[i].num[2], &QnA[i].strike, &QnA[i].ball);
	}

	for (int i = 1; i < 10; i++)
		for (int j = 1; j < 10; j++)
			if (i == j) continue;
			else	for (int k = 1; k < 10; k++)
					{
						if (i == k || j == k) continue;
						if (Check(i, j, k)) cnt++;
					}
	
	printf("%d", cnt);

	return 0;
}
반응형

'프로그래밍 알고리즘' 카테고리의 다른 글

[정올 1828] 냉장고  (1) 2023.01.06
[정올 1809] 탑  (0) 2023.01.06
[정올 1726] 구간의 최대값1  (1) 2023.01.05
[정올 1716] 이진트리 탐색  (0) 2023.01.05
[정올 1697] 큐(queue)  (1) 2023.01.05