백준 4344번
inputNum = input()
arr = []
for s in range(0, int(inputNum)):
string = input()
arr.append(string)
for i in range(0, int(inputNum)):
numArr = [int(x) for x in arr[i].split(' ')]
num = numArr.pop(0)
print(f'{str(round((sum(numArr) / num), 3))}%')
inputNum = input()
arr = []
for s in range(0, int(inputNum)):
string = input()
arr.append(string)
for i in range(0, int(inputNum)):
numArr = [int(x) for x in arr[i].split(' ')]
num = numArr.pop(0)
print('{:.3f}%'.format(round((sum(numArr) / num), 3)))
문제를 제대로 안읽어서 기껏 짠 코드인데 두 번이나 틀렸다 ㅠㅠㅠ
inputNum = input()
arr = []
for s in range(0, int(inputNum)):
string = input()
arr.append(string)
for i in range(0, int(inputNum)):
numArr = [int(x) for x in arr[i].split(' ')]
avg = round(sum(numArr) / numArr.pop(0), 3)
avgArr = [x for x in numArr if x > avg]
print('{:.3f}%'.format(round(len(avgArr) / len(numArr)*100, 3)))
왜 예제 출력 답안 네번째가 66.667퍼인지 이해가 되지 않았당…
자세히 보니 평균값이 1씩 더해져있는 것을 발견
inputNum = input()
arr = []
for s in range(0, int(inputNum)):
string = input()
arr.append(string)
for i in range(0, int(inputNum)):
numArr = [int(x) for x in arr[i].split(' ')]
popNum = numArr.pop(0)
avg = round(sum(numArr) / popNum, 3)
avgArr = [x for x in numArr if x > avg]
print('{:.3f}%'.format(round(len(avgArr) / len(numArr)*100, 3)))
맞았긴 맞았는데 이중포문 들간건 인간적으로 고쳐야할 듯
inputNum = input()
arr = []
for s in range(0, int(inputNum)):
string = input()
arr.append(string)
for i in range(0, int(inputNum)):
stu = list(map(int, arr[i].split(' ')))
stuPop = stu.pop(0)
avg = round(sum(stu) / stuPop, 3)
avgStu = [x for x in stu if x > avg]
print('{:.3f}%'.format(round(len(avgStu) / len(stu)*100, 3)))
inputNum = input()
for i in range(0, int(inputNum)):
stu = list(map(int, input().split(' ')))
stuPop = stu.pop(0)
avg = sum(stu) / stuPop
avgStu = [x for x in stu if x > avg]
print('{:.3%}'.format(len(avgStu) / len(stu)))
코드 수를 줄여서 input 값을 아예 하나의 포문 안에서 받도록 바꾸어보아따.
round 함수도 뺄 수 있어서 빼봄!
근데 속도는 오히려 느려짐ㅋㅋㅋㅋ
inputNum = int(input())
for i in range(inputNum):
stu = input().split(' ')
sco = list(map(int, stu[1:]))
avg = sum(sco) / len(sco)
avgStu = [x for x in sco if x > avg]
print('{:.3%}'.format(len(avgStu) / len(sco)))
코드 수는 많이 줄였는데 속도는 조금 줄었당…
그래서 마지막 찬스로 다른 사람들 코드를 참고해보아따
inputNum = int(input())
for i in range(inputNum):
stu = input().split(' ')
sco = list(map(int, stu[1:]))
avg = sum(sco) / len(sco)
avgStu = 0
for s in sco:
if s > avg:
avgStu += 1
print('{:.3%}'.format(avgStu / len(sco)))
아니…이래도 속도가 안줄어드넹…ㅠㅠㅠㅠㅠ
참고했던 분의 코드 그대로 붙여넣어 봤더니 속도 차이 거의 안났당.. 모지
어쨋든 평균 이상인 학생수만 그냥 세어서 전체 학생 수로 나누는 방법을 생각 못했어서 공부는 된 듯 하당ㅋㅋㅋㅋㅋ
근데 왜 생각못했지…