netsus   5년 전

아무리 생각해도 어디서 틀렸는지 잘 모르겠습니다.

밑에는 코드와 주석이 함께 있는것입니다 참고해주세요~

n = int(input()) # 테스트 케이스 개수 

a=[] # 퍼센트 저장할 빈 리스트 

for i in range(n): #테스트 케이스 만큼만 반복 

 li = input().split(' ') # 입력값 " "를 구분자로 문자열 리스트만듦 

 li = [int(x) for x in li] # 리스트 컴프리핸션 이용. 문자열리스트를 정수 리스트로 바꿈 

 m = sum(li[1:])/li[0] # 리스트의 2번째 항목부터 끝까지 / 리스트의 첫항목(항목개수) 

 high = [x for x in li if x>m] #평균 넘는애들만 리스트로 만듦 

 a.append(len(high)/li[0]*100) #평균 넘는 퍼센트를 a리스트에 저장 

for j in a: # 반복하며 출력 

 print("{:.3f}%".format(j)) #평균넘는애들/항목개수를 소수점3자리(자동반올림) 퍼센테이지로

hello70825   5년 전

  1. 7번째 줄에서 x가 li[0]부터 시작합니다.
  2. a배열에 저장하지 않고 각 줄마다 값을 받는 족족 출력되게 만들어도 됩니다.
  3. li=list(map(int,input().split()) 이나 li=[*map(int,input().split()] 을 하면 4~5째줄 같이 두줄로 써야할 것을 한줄로 줄일 수 있습니다.

netsus   5년 전

와 생각지도 못한곳에서 실수가 있었네요.

그리고 조언들 정말 감사합니다. 

특히 input 어떻게 하면 더 짧아지게 못하나 고민많았는데 그것까지 딱 해결이 되었습니다. 감사합니다~~

댓글을 작성하려면 로그인해야 합니다.