본문 바로가기
코딩테스트/백준 알고리즘

백준 알고리즘 | 10039 : 평균 점수 (Python / 파이썬)

by 함께 공부해요 2020. 12. 14.


평균 점수 성공출처다국어분류

시간 제한

메모리 제한

제출

정답

맞은 사람

정답 비율

1 초

128 MB

44706

28603

25828

65.444%

https://www.acmicpc.net/problem/10039

 

10039번: 평균 점수

입력은 총 5줄로 이루어져 있고, 원섭이의 점수, 세희의 점수, 상근이의 점수, 숭이의 점수, 강수의 점수가 순서대로 주어진다. 점수는 모두 0점 이상, 100점 이하인 5의 배수이다. 따라서, 평균 점

www.acmicpc.net


문제

상현이가 가르치는 아이폰 앱 개발 수업의 수강생은 원섭, 세희, 상근, 숭, 강수이다.

어제 이 수업의 기말고사가 있었고, 상현이는 지금 학생들의 기말고사 시험지를 채점하고 있다. 기말고사 점수가 40점 이상인 학생들은 그 점수 그대로 자신의 성적이 된다. 하지만, 40점 미만인 학생들은 보충학습을 듣는 조건을 수락하면 40점을 받게 된다. 보충학습은 거부할 수 없기 때문에, 40점 미만인 학생들은 항상 40점을 받게 된다.

학생 5명의 점수가 주어졌을 때, 평균 점수를 구하는 프로그램을 작성하시오.

입력

입력은 총 5줄로 이루어져 있고, 원섭이의 점수, 세희의 점수, 상근이의 점수, 숭이의 점수, 강수의 점수가 순서대로 주어진다.

점수는 모두 0점 이상, 100점 이하인 5의 배수이다. 따라서, 평균 점수는 항상 정수이다.

출력

첫째 줄에 학생 5명의 평균 점수를 출력한다.

알고리즘 분류

수학

사칙연산


 

백준 알고리즘 # 10039번 : 평균 점수

출처:  https://hidekuma.github.io/python/numpy/python-numpy-mean-var-std/

ans = []
for i in range(5):
    ans.append(int(input()))

result = []
for i in ans:
    if i < 40:
        result.append(40)
    else:
        result.append(i)

avg = sum(result) / len(result)

print(int(avg))

풀이

엄청 원초적으로 풀어봤습니다...ㅋㅋㅋㅋ

먼저 ans 변수를 리스트로 초기화해서 for문으로 5개의 정수를 입력받고

result 변수 역시 리스트로 초기화 한 후 for문 안에서 if문을 사용해서

i로 받는 정수가 40미만을 만족할 때 즉, i < 40 일 때는 result 리스트에 40이라는 정수가 들어가게 하고

나머지(else)는 i로 받은 정수 그대로 result 리스트추가(append)해줬습니다.

key point

파이썬에서 평균을 구하는 방법은 두 가지가 있는데요.

sum 함수를 이용해서 리스트에 있는 값들을 다 더한 후

len 함수를 이용해서 리스트의 길이로 나누는 방법과

numpy 모듈을 이용해서 그 안에 내제함수인 mean 함수를 사용하는 방법이 있습니다. 참고하세요👍🏻

이렇게 avg를 구한 후 int를 씌워서 출력하면 문제 풀이 끄--읏!👏🏻

(ps. int를 안씌우면 출력값이 68.0으로 나오게 됩니다.)

세한 코드가 궁금하신 분들은 아래 GitHub 코드를 참고해주세요🙏🏻

 

wook2124/Algorithm-Test

Practice algorithm. Contribute to wook2124/Algorithm-Test development by creating an account on GitHub.

github.com

최종 소스코드

댓글