티스토리 뷰
평균은 넘겠지
문제
대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.
입력
첫째 줄에는 테스트 케이스의 개수 C가 주어진다.
둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.
출력
각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.
예제 입력
5
5 50 50 70 80 100
7 100 95 90 80 70 60 50
3 70 90 80
3 70 90 81
9 100 99 98 97 96 95 94 93 91
예제 출력
40.000%
57.143%
33.333%
66.667%
55.556%
출처 Contest > Waterloo's local Programming Contests > 28 September, 2002 D번
해설
코드가 좀 지저분한 게 마음은 안 들지만 정리해서 코딩하기 귀찮다. 입력 횟수를 변수 times로 받는다. 각 입력라인에서 학생 수는 변수 num으로 받는데 최대 1000명이므로 점수를 받아 저장할 배열은 score[1000]으로 선언한다.
먼저 평균을 구한다.
for (j = 0; j < num; ++j) { scanf("%d", &score[j]); sum += score[j]; } avg = sum / num;
평균이 넘는 학생의 비율을 구한다.
for (j = 0; j < num; ++j) { if (score[j] > avg) { count++; } } result = (float) count / num * 100; printf("%.3f%%\n", result);
오랜만에 코딩을 해서 그 사이 연산자에 의해 암시적 캐스팅 규칙이 바뀐 것이지 잘못 기억하고 있는지 모르겠다. 확인해 봐야 하지만 귀찮아서…. 기억대로라면 result = (float) count / num * 100;
에서 나눗셈은 따로 float로 캐스팅을 해주지 않아도 연산값이 실수이면 실수를 반환해 주는 것 아니었나? (float)
없이 코딩했더니 결과가 O.OOO%
로만 나온다. 어느 하나를 float형으로 캐스팅해 주어야 원하는 결과를 얻을 수 있었다. 주의하자.
소스코드: C
#include <stdio.h>
int main(int argc, char *argv[])
{
int i, j, times, num, sum, count;
float avg, result;
int score[1000];
scanf("%d", ×);
for (i = 0; i < times; ++i) {
sum = 0;
count = 0;
scanf("%d", &num);
for (j = 0; j < num; ++j) {
scanf("%d", &score[j]);
sum += score[j];
}
avg = sum / num;
for (j = 0; j < num; ++j) {
if (score[j] > avg) {
count++;
}
}
result = (float) count / num * 100;
printf("%.3f%%\n", result);
}
return 0;
}
'Python > 심사문제' 카테고리의 다른 글
백준(BAEKJOON): 한수(1065번) (0) | 2020.03.19 |
---|---|
백준(BAEKJOON): 셀프 넘버(4673번) (0) | 2020.03.18 |
백준(BAEKJOON): OX퀴즈(8958번) (0) | 2020.03.12 |
백준(BAEKJOON): 평균(1546번) (0) | 2020.03.09 |
백준(BAEKJOON): 상근날드(5543번) (0) | 2020.03.08 |
- Total
- Today
- Yesterday
- baekjoon
- MacOS
- QGridLayout
- QLineEdit
- Python
- 백준
- judge
- 리찬규
- NK
- BOJ
- 북한말
- 리규찬
- QtDesigner
- 유래
- setText()
- words
- 소수
- C
- Mac
- django
- 어원
- word
- locallibrary
- python3
- books
- QComboBox
- PyQt5
- tips
- QLabel
- Tistory
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |