티스토리 뷰

반응형

백준 4344번 평균은 넘겠지

 

알고리즘 분류: 수학, 사칙연산

 

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

 

 

4344번: 평균은 넘겠지

문제 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. 입력 첫째 줄에는 테스트 케이스의 개수 C가 주어진다. 둘째 줄부터 각 �

www.acmicpc.net

문제

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

입력

첫째 줄에는 테스트 케이스의 개수 C가 주어진다.

둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.

출력

각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.

 

 

문제 파악

 

일단 문제 자체가 굉장히 뼈를 때리는 나쁜 문제이다.

 

이 문제는 평균을 넘는 학생들의 비율을 소수 셋째자리 까지 반올림하는게 핵심으로 보인다.

 

다른 포인트는 입력값의 첫 수는 학생 수 이기 때문에 이를 잘 골라내는게 중요하다.

 

또한 예제 출력을 보면 %로 표현되기 때문에 이 또한 실수하지 않게 주의해야 한다.

 

 

코드

 

 

입력값을 score 라는 리스트에 저장을 했다.

 

그러나 입력값의 첫 수는 학생 수 이기 때문에 score의 0번 인덱스를 student라는 변수에 저장하고

 

score를 다시 1번 인덱스부터 슬라이싱해서 저장하였다.

 

평균값은 even이라는 변수에 초기화하고 평균을 넘는 학생들은 good_student라는 리스트에 넣을것이다.

 

score안에 저장되있는 모든 수들을 더하고 score의 길이만큼 나눠주면 평균이 나오게된다.

 

이를 다시 평균보다 높은 점수를 가진 학생들을 good_student에 넣어준다.

 

평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력해야 하기 때문에

 

round함수를 이용해서 소수점 셋째 자리까지 반올림 해주는데 이 때 주의해야 할 점은

 

round함수는 끝의 자리가 0이면 이를 포함하지 않아버리기 때문에 주의해야한다.

 

그렇기 때문에 출력을 할때 format함수를 사용하여 정확히 소수점 셋째 자리까지 표현하였다.

 

파이썬은 int형과 str형을 +를 통해 붙이는게 안되는것 같아서

 

f-string을 사용하여서 %까지 붙여서 출력을 해주면 된다.

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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 31
글 보관함