티스토리 뷰
백준 4344번 평균은 넘겠지
알고리즘 분류: 수학, 사칙연산
링크: https://www.acmicpc.net/problem/4344
문제
대학생 새내기들의 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을 사용하여서 %까지 붙여서 출력을 해주면 된다.
'Python 알고리즘' 카테고리의 다른 글
백준 2775번 파이썬 풀이: 부녀회장이 될테야 (1) | 2020.08.28 |
---|---|
백준 2748번 파이썬 풀이: 피보나치 수 2 (0) | 2020.08.27 |
백준 2869번 파이썬 풀이: 달팽이는 올라가고 싶다 (0) | 2020.08.27 |
백준 2446번 파이썬 풀이: 별 찍기 - 9 (0) | 2020.08.27 |
백준 15552번 파이썬 풀이: 빠른 A+B (0) | 2020.08.26 |