풀이
c = int(input())
e=[]
for i in range(c) :
b = list(map(int, input().split()))
sum = 0
for ii in range(b[0]) :
sum += b[ii +1]
cnt=0
for ii in range(b[0]) :
if b[ii+1] > sum/b[0] :
cnt +=1
e.append((cnt/b[0])*100)
b.clear()
for i in range(c) :
print(f'{e[i]:.3f}%')
여러가지로 고민 많이 하고 했는데,
요 분 블로그보고 제일 쉽게 이해했다.
https://wook-2124.tistory.com/244
백준 알고리즘 | 4344 : 평균은 넘겠지 (Python / 파이썬)
평균은 넘겠지 출처다국어분류 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1 초 256 MB 80917 29913 25930 38.079% https://www.acmicpc.net/problem/4344 4344번: 평균은 넘겠지 대학생 새내기들의 9..
wook-2124.tistory.com
c = int(input())
e=[]
for i in range(c) :
b = list(map(int, input().split()))
sum = 0
1. 첫째 줄에는 테스트 케이스의 개수 C가 주어진다. 를 만족시키고,
2. e 라는 빈 리스트 만들어준다.
3. for 를 하는데 범위는 테스트의 개수만큼.
4. 둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 를 만족하기 위해 작성한 b.
예제)
5 50 50 70 80 100
예제의 이 숫자를 넣는 곳.
5. sum 변수를 만든다.
for ii in range(b[0]) :
sum += b[ii +1]
cnt=0
6. range(b[0]) 은 예제에서 봤듯이, 5 50 50 70 80 100 중 학생의 인원수 5 만큼을 반복하는것이다.
반복은 학생 수 만큼 하면서 sum은 학생의 점수를 더할 수 있게 b[ii+1] 을 해준다.
다음 cnt=0 변수를 만들어두는데,
for ii in range(b[0]) :
if b[ii+1] > sum/b[0] :
cnt +=1
7. 같은 반복문으로, 만약 학생의 점수(b[ii+1])가 평균(sum/b[0]) 보다 크다면,
cnt를 하나씩 올려준다.
평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.
평균 넘는 학생들을 찾아야 하기 때문.
e.append((cnt/b[0])*100)
b.clear()
8. 맨 위에서 만들어둔 e 리스트에, 평균을 넘는 학생 수(cnt) / 학생 총 수(b[0] * 100 = 비율 을 해준다.
9. b.clear() 는 다음 for문이 돌 때 b의 입력된 값을 없애준다.
for i in range(c) :
print(f'{e[i]:.3f}%')
10. 마지막 반복문 작성 후,
최종 값을 출력해주는데, 문제에서 원하는대로 소수점 셋째자리까지 + '%'를 붙여 출력하기 위해 f-string 문자열을 사용.
소수점 관련된 f-string 문자열의 활용은 위와 같이 작성해주면 된다.
f 적고 세미콜론후 {} 안에 필요한 값 작성, 이후 : 사용 다음 콤마(.)와 원하는 소수점범위(3) 작성 후 f로 적어둔다.
n = int(input())
for i in range(n):
input_score = list(map(int, input().split(' ')))
avg = sum(input_score[1:])/input_score[0]
cnt = 0
for score in input_score[1:]:
if score > avg:
cnt += 1
rate = cnt / input_score[0] * 100
print(f'{rate:.3f}%')
이건 다른 분 코드보다가 , 이해되기도 하고 더 간결한듯하여 가져와봄.
근데 이거는 출력할 때 입력하면 바로 출력이 하나씩 나와버려서, 아무래도 위에거가 식은 더 길지만 이해하기에 수월하다.
배운것
f-string, for문 안에 for를 어떻게 구성해야 하는지 (연속 for 문 작성)
'IT > 알고리즘' 카테고리의 다른 글
백준 1065 한수 파이썬 (0) | 2022.02.24 |
---|---|
백준 4673 셀프 넘버 파이썬 (0) | 2022.02.23 |
백준 8958 OX퀴즈 파이썬 (0) | 2022.02.21 |
백준 1546 평균 파이썬 (0) | 2022.02.21 |
백준 3052 나머지 파이썬 (0) | 2022.02.20 |