< 백준 4344> ✅
입력 :
첫째 줄에는 테스트 케이스의 개수 C가 주어진다.
둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 <= N <= 1000, N은 정수)이 첫 수로 주어지고, 이어서 명의 점수가 주어진다. 점수는 0보다 크거나 같고 100보다 작거나 같은 정수다.
출력 :
각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.
< 틀렸다는데 왜 틀렸는지 모르겠는 내 코드 >
주피터 노트북에서 돌렸을 때는 출력값을 제대로 돌려주는데도, 즉 제대로 작동하는 코드가 맞는데도 채점 결과는 계속 '틀렸습니다'이다....
도대체 왜...?!?!?!
< 이제야 알겠어서 맞춘 내 코드 >
처음 코드에서 틀린 부분은
문제 중 '각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.' 에서
'반올림하여'를 빼먹어서였다.
반올림도 하고, 출력할 때 소수점 셋째 자리까지도 설정해줘야 한다.
round( 반올림 대상이 되는 숫자, n) 을 해주면 반올림해서 n자리까지 보여준다.
입력 :
첫째 줄에는 테스트 케이스의 개수 C가 주어진다.
둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 <= N <= 1000, N은 정수)이 첫 수로 주어지고, 이어서 명의 점수가 주어진다. 점수는 0보다 크거나 같고 100보다 작거나 같은 정수다.
출력 :
각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.
< 틀렸다는데 왜 틀렸는지 모르겠는 내 코드 >
1 2 3 4 5 6 7 8 9 10 11 | C = int(input()) for i in range(C): score = list(map(int, input().split())) cnt = 0 avg = sum(score[1::]) / score[0] for s in score[1:]: if s > avg: cnt += 1 output = (cnt/score[0]) * 100 print('%.3f' % output + "%") |
주피터 노트북에서 돌렸을 때는 출력값을 제대로 돌려주는데도, 즉 제대로 작동하는 코드가 맞는데도 채점 결과는 계속 '틀렸습니다'이다....
도대체 왜...?!?!?!
< 이제야 알겠어서 맞춘 내 코드 >
1 2 3 4 5 6 7 8 9 10 | C = int(input()) for i in range(C): score = list(map(int, input().split())) cnt = 0 avg = sum(score[1::]) / score[0] for s in score[1:]: if s > avg: cnt += 1 print(str('%.3f' % round(cnt / score[0] * 100, 3)) + '%') |
처음 코드에서 틀린 부분은
문제 중 '각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.' 에서
'반올림하여'를 빼먹어서였다.
반올림도 하고, 출력할 때 소수점 셋째 자리까지도 설정해줘야 한다.
round( 반올림 대상이 되는 숫자, n) 을 해주면 반올림해서 n자리까지 보여준다.
0 Comments
Post a Comment