알고리즘/백준

백준 단계별 풀이

:) :) 2022. 3. 13. 16:29

**배열 - 평균은 넘겠지

 

*review

 

- cout으로 소수점 설정하는 방법

 

*총평

 

- for문을 남발하며 코드를 작성하다가 infinite loop에 빠져버렸다. 오류찾느라 처음부터 다시 코드를 짜면서 가독성이 곧 효율성이라는 걸 새삼 깨달았다.

- double과 integer 자료형 가지고 연산할 때 오류 범하지 않게 주의, static_cast<>가 곧바로 떠올라 다행이었다.

 

https://www.acmicpc.net/problem/4344

 

4344번: 평균은 넘겠지

대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.

www.acmicpc.net

#include <iostream>

using namespace std;

int main() {
	int testCase;
	cin >> testCase;
	
	// 모든 값 입력받은 이후 한꺼번에 출력하기 위한 동적배열
	double* container = new double[testCase];

	// Case별 실행
	for (int i = 0; i < testCase; i++) {
		int num;
		int sum = 0;
		cin >> num;
		int* p = new int[num]; // Case별 연산을 위한 동적할당
		for (int j = 0; j < num; j++){
			cin >> p[j];
			sum = sum + p[j];
		}
		
		double avg = static_cast<double>(sum) / static_cast<double>(num);
		double count = 0.0;
		for (int k = 0; k < num; k++) {
			if (static_cast<double>(p[k]) > avg) {
				count++;
			}
		}
		
		double result = 0.0;
		result = count / static_cast<double>(num) * 100;

		container[i] = result;

		delete[] p;

	}

	for (int i = 0; i < testCase; i++) {
		cout << fixed;
		cout.precision(3);
		cout << container[i] << '%' << '\n';
	}
	
	delete[] container;


	return 0;
}

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

[Baekjoon] 1929_소수 구하기  (0) 2022.04.11
[Baekjoon] 1436_영화감독 숌  (0) 2022.04.10
[Baekjoon] github repository 생성  (0) 2022.04.08
백준 단계별 풀이  (0) 2022.03.13