개발세발은 안되요

[백준 9076: 점수 집계] [C] 본문

알고리즘/백준

[백준 9076: 점수 집계] [C]

금호박 2022. 9. 5. 16:12
#include<stdio.h>
void del(int N[]) {
	for (int i = 0; i < 5; i++) {
		for (int j = 0; j < 4; j++) {
			if (N[j] > N[j + 1]) {
				int temp = N[j];
				N[j] = N[j + 1];
				N[j + 1] = temp;
			}
		}
	}
	if (N[3] - N[1] >= 4) {
		printf("KIN\n");
	}
	else {
		printf("%d\n", N[1] + N[2] + N[3]);
	}
}
int main(void) {
	int T;
	scanf("%d", &T);		//테스트케이스 수 입력
	int N[10][5];
	//공백 구분 테스트케이스 입력
	for (int i = 0; i < T; i++) {
		for (int j = 0; j < 5; j++) {
			scanf("%d", &N[i][j]);
		}
	}
	for (int i = 0; i < T; i++) {
		del(N[i]);
	}

	return 0;
}

풀이 방법:

입력받은 배열을 우선 오름차순으로 정리한다. 최고점과 최소점을 뺀다고 했기 때문에 고려해야 할 배열은 index 1번부터 3번이다.

1) 1번과 3번의 차이가 4 이상일 경우 : KIN 출력

2) 1번과 3번의 차이가 4 미만일 경우 : index 1번부터 3번까지의 총합 출력.

개선점, 느낀 점:

다행히도 문제에 제시되어있는 배열의 크기가 작아서 버블 정렬이 이용 가능했다. 그래도 버블 정렬 외의 다른 정렬로 구현해봐야겠다. 또 이제 정말 C++를 제대로 공부해봐야겠다. C++의 기능을 수행하기 위해 C는 여러가지로 불편한 점이 많은 것 같다

 

원본 링크 : https://blog.naver.com/ahtnwl1004/222681174437

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

[백준 2865 : 나는 위대한 슈퍼스타 K][C++]  (0) 2022.09.05
[백준 9251: LCS] [C]  (0) 2022.09.05
[백준2011: 암호코드] [C]  (0) 2022.09.05
[백준 2607: 비슷한 단어] [C]  (0) 2022.09.05
[백준 2579: 계단 오르기][C]  (0) 2022.09.05