평균은 넘겠지
항상 런타임이 문제다. 시간복잡도에 굉장히 민감하게 반응하는듯하다. 근데 이문제는 내가생각할수 있는 방법은 무조건 루프가 여러번 돌아야한다.
#최초코드
n=int(input())
result=[]
for _ in range(0,n):
r=[int(i) for i in input().split()]
poped=r.pop(0)
r=r[:r[0]]
avg=sum(r)/poped
over=0
for i in r:
if i>avg:
over+=1
result.append('%.3f'%((float(over)/len(r)*100)));
for s in result:
print(s)
개선점은result
를 모아서 출력하지 않아도 된다는것 그렇기 때문에 result
변수 자체가 필요없어졌고(공간복잡도), 배열 r
을 제정의하지 않아도 되기때문에 아무래도 연산시간이 감소한다. 추가로 %를 안써줬다.
#해답코드
n=int(input())
for _ in range(0,n):
r=[int(i) for i in input().split()]
poped=r.pop(0)
avg=sum(r)/poped
over=0
for i in r:
if i>avg:
over+=1
print('%.3f'%((float(over)/len(r)*100))+'%');