**배열 - 평균은 넘겠지
*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 |