1 분 소요

[Bronze IV] 평균 점수 - 10039

문제 링크

성능 요약

메모리: 30840 KB, 시간: 72 ms

분류

사칙연산(arithmetic), 수학(math)

문제 설명

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

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

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

입력

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

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

출력

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

출처: 백준, https://https://www.acmicpc.net/

2. 해결방법 시간복잡도

  1. 단순 코딩 O(N)

3. 문제 해결 및 코드


  • 주석을 참고하면서 이해를 돕습니다.

4. 알고리즘 및 해설

  1. 받아야할 값은 int(sys.stdin.readline()) 으로 받아준다. 해당 함수는 시스템에서 출력하는 한줄을 읽어오는 것이기때문에 메모리 관점에서 큰 효율을 안겨준다.
  2. 이후에 하나의 리스트로 만들어서 for 반복문을 통해 리스트 안의 A부터 특정 점수 (40점) 보다 작을 경우에는 40으로 바꿔준다.
  3. 이후 sum() 함수를 이용해 리스트 내 모든 수를 더한 값을 총 인원(5명)으로 나눠준다.

5. 짚고 넘어가기

  1. 여기서 중요한 점은 sys.stdin.readline() 이 부분이다. 백준이나 프로그래머스 그 외 알고리즘 문제를 해결할 때 많이 용되는 방법 중 하나이다. 메모리 효율을 많이 올릴 수 있으므로, 메모리 초과나 시간 초과와 같은 에러를 사전에 방지할 수 있다. => 프로젝트 과정에서는 거의 사용하지 않는 것이지만 문제 해결에서는 많이 사용되는 편이다.