[Python] 백준 10039

큐가·2025년 2월 2일
1

백준

목록 보기
4/10

문제

상현이가 가르치는 아이폰 앱 개발 수업의 수강생은 원섭, 세희, 상근, 숭, 강수이다.
어제 이 수업의 기말고사가 있었고, 상현이는 지금 학생들의 기말고사 시험지를 채점하고 있다. 기말고사 점수가 40점 이상인 학생들은 그 점수 그대로 자신의 성적이 된다. 하지만, 40점 미만인 학생들은 보충학습을 듣는 조건을 수락하면 40점을 받게 된다. 보충학습은 거부할 수 없기 때문에, 40점 미만인 학생들은 항상 40점을 받게 된다.
학생 5명의 점수가 주어졌을 때, 평균 점수를 구하는 프로그램을 작성하시오.

입력

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

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

출력

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

소스코드

첫 번째 시도 - 실패

A = int(input())
B = int(input())
C = int(input())
D = int(input())
E = int(input())

if A < 40:
  A = 40
elif B < 40:
  B = 40
elif C < 40:
  C = 40
elif D < 40:
  D = 40
elif E < 40:
  E = 40

total = A + B + C + D + E
average = int(total / 5)

print(average)
  • if를 쓴 후 습관적으로 elif를 쓰게 되는 것 같다. 어처구니 없는 실수라고 생각한다.

두 번째 시도 - 성공했으나 비효율적인 코드라고 판단됨

A = int(input())
B = int(input())
C = int(input())
D = int(input())
E = int(input())

if A < 40:
  A = 40
if B < 40:
  B = 40
if C < 40:
  C = 40
if D < 40:
  D = 40
if E < 40:
  E = 40

total = A + B + C + D + E
average = int(total / 5)

print(average)

세 번째 코드 - 성공, 지금 작성할 수 있는 가장 효율적인 코드라고 생각 됨

def score(num):
  if num < 40:
    num = 40
  return num

A = int(input())
B = int(input())
C = int(input())
D = int(input())
E = int(input())

A = score(A)
B = score(B)
C = score(C)
D = score(D)
E = score(E)

total = A + B + C + D + E
average = int(total / 5)

print(average)
  • 함수를 사용하여 반복되는 과정을 함수화하였다.

함수 - def 키워드

  • def <함수명(매개변수)>:
    <함수 내용(들여쓰기를 해야 한다)>
profile
대학교 2학년, 컴퓨터학과

0개의 댓글