Q. 상근이와 친구들은 MT에 가서 아래 설명과 같이 재미있는 게임을 할 것이다.

각 플레이어는 1이상 100 이하의 정수를 카드에 적어 제출한다. 각 플레이어는 자신과 같은 수를 쓴 사람이 없다면, 자신이 쓴 수와 같은 점수를 얻는다. 만약, 같은 수를 쓴 다른 사람이 있는 경우에는 점수를 얻을 수 없다.

상근이와 친구들은 이 게임을 3번 했다. 각 플레이어가 각각 쓴 수가 주어졌을 때, 3번 게임에서 얻은 총 점수를 구하는 프로그램을 작성하시오.

 

입력.

첫째 줄에 참가자의 수 N이 주어진다. (2 ≤ N ≤ 200) 둘째 줄부터 N개 줄에는 각 플레이어가 1번째, 2번째, 3번째 게임에서 쓴 수가 공백으로 구분되어 주어진다.

 

출력.

각 플레이어가 3번의 게임에서 얻은 총 점수를 입력으로 주어진 순서대로 출력한다.

 


 

이차원 배열의 요소의 값을 같은 행에 해당하는 요소의 값과 하나씩 비교하는 방법을 사용했다.

비교한 결과, 값은 값이 있으면 0으로 바꾸어 주었다.

 

그리고 이 문제에서는 컴파일 에러가 발생했는데, 주로 헤더 파일에 문제가 있을 때 나타난다고 한다.

알아보니 C언어는 bool 자료형이 없다는 것을 알게 되었고, 아래의 두 가지 방법으로 문제를 해결하였다.

 


 

C언어에는 bool 자료형이 없기 때문에 1을 true, 0을 false로 지정해서 한다. 다음은 C언어에서 bool 자료형을 사용하는 방법이다.

 

1. stdbool.h 라는 헤더파일을 추가한다.

ex)
#include <stdbool.h>

bool b;
b = true;
2. bool 이 아닌, _Bool 을 자료형으로 선언한다.

ex)
_Bool b;

b = 1;

 


 

#include <stdio.h>
#include <stdbool.h>

int main(void) {
	int i, j, k, n;
	bool check;
	int input[200][3];
	int score[200];

	scanf("%d", &n);

	for (i = 0; i < n; i++) {
		scanf("%d %d %d", &input[i][0], &input[i][1], &input[i][2]);
	}

	for (i = 0; i < 3; i++) {	
		for (j = 0; j < n; j++) {
			check = false;

			for (k = j + 1; k < n; k++) {
				if (input[j][i] == input[k][i]) {
					input[k][i] = 0;
					check = true;
				}
			}

			if (check)
				input[j][i] = 0;
		}
	}

	for (i = 0; i < n; i++) {
		score[i] = input[i][0] + input[i][1] + input[i][2];
		printf("%d\n", score[i]);
	}

	return 0;
}
#include <stdio.h>

int main(void) {
	int i, j, k, n;
	_Bool check;
	int input[200][3];
	int score[200];

	scanf("%d", &n);

	for (i = 0; i < n; i++) {
		scanf("%d %d %d", &input[i][0], &input[i][1], &input[i][2]);
	}

	for (i = 0; i < 3; i++) {	
		for (j = 0; j < n; j++) {
			check = 0;

			for (k = j + 1; k < n; k++) {
				if (input[j][i] == input[k][i]) {
					input[k][i] = 0;
					check = 1;
				}
			}

			if (check)
				input[j][i] = 0;
		}
	}

	for (i = 0; i < n; i++) {
		score[i] = input[i][0] + input[i][1] + input[i][2];
		printf("%d\n", score[i]);
	}

	return 0;
}

 

'백준 알고리즘' 카테고리의 다른 글

[C언어] 10709번  (0) 2020.05.14
[C언어] 5618번  (0) 2020.05.13
[C언어] 10817번  (0) 2020.04.25
[C언어] 10250번  (0) 2020.04.17
[C언어] 1712번  (0) 2020.04.15

+ Recent posts