2주차 | 문제 1. 합격자 찾기
문제
구름이는 프로그래밍 수업의 조교이다. 프로그래밍 수업은 학생들의 성적 관리를 위해서 t번의 시험을 보고 있다. 구름이는 매 시험의 합격자를 관리하여 보고 해야 한다. 이때, 매 시험마다 응시하는 학생의 수와 성적이 다르다는 이유 때문에 절대적인 값으로 합격자를 가리는 것은 문제가 있다고 생각해서 새로운 방법으로 합격자를 가려내기로 한다.구름이는 매 시험 성적의 평균보다 이상인 사람을 합격자라고 하기로 한다. 그리고 시험마다 합격자의 수를 a, 응시자의 수를 b라고 한다면 a/b 형태로 나타내기로 한다.
구름이를 도와 프로그래밍 수업의 시험 결과를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 시험의 개수 t(1≤t≤10)이 주어진다.각 시험 정보는 2줄로 이루어져 있다. 시험 정보는 t개 주어진다. 시험 정보의 첫째 줄에는 응시 인원 수 n(1≤n≤1,000)이 주어진다.
시험 정보의 둘째 줄에는 시험 성적 v_i가 n개가 공백을 두고 주어진다. 시험 성적 v_i는 1 이상 1,000 이하의 정수이다.
출력
매 줄에 시험 결과를 조건에 따라서, 시험 정보가 주어지는 순서대로 출력한다.
풀이
t=int(input()) # 시험의 개수
for i in range(t):
n=int(input()) # 응시 인원 수
value=list(map(int, input().split())) # 시험 성적
avg=sum(value)/len(value) # 평균 성적
c=0 # 합격자
for v in value:
if v>=avg:
c+=1
print('{0}/{1}'.format(c,n))
이 문제의 키포인트는 a/b 형태로 '(합격자의 수) / (응시자의 수)'를 출력하는 부분이라고 생각된다. 출력 형태에 대한 조건은 없었기 때문에 .format 함수를 이용하여 문자열로 출력하는 방법을 택하였다.
해설에서는 아래와 같은 코드로 출력을 하였다.
print("%d/%d"%(cnt, n))
반응형