본문 바로가기

Python_Matter/COS Pro

YBM Python Test Level 2 - 총점

Q>

문제 설명

한 학생의 과목별 점수가 들어있는 배열이 주어졌을 때,

이 학생의 최고 점수와 최저 점수를 제외한 나머지 점수들의 합계를 구하려 합니다.

이를 위해 다음과 같이 4단계로 프로그램 구조를 작성했습니다.

 

1. 모든 과목 점수의 합을 구합니다.

2. 최고 점수를 구합니다.

3. 최저 점수를 구합니다.

4. (모든 과목 점수의 합) - (최고 점수) - (최저 점수)의 값을 return 합니다.

 

학생의 과목별 점수가 들어있는 배열 scores scores의 길이 scoreslen이 매개변수로 주어질 때, 학생의 과목별 점수에서 최고 점수와 최저 점수를 제외한 나머지 점수의 합을 return 하도록 solution 함수를 작성하려 합니다. 위 구조를 참고하여 코드가 올바르게 동작할 수 있도록 빈칸에 주어진 funca, funcb, funcc 함수를 알맞게 채워주세요.

 

- 매개변수 설명

학생의 과목별 점수가 들어있는 배열 scores scores의 길이 scores_len solution 함수의 매개변수로 주어집니다.

* scores의 길이는 3 이상 10 이하입니다.
* 학생의 점수는 0점 이상 100점 이하의 정수이며, 같은 점수를 받은 과목은 없습니다.

 

- return 값 설명

solution 함수는 학생의 과목별 점수에서 최고 점수와 최저 점수를 제외한 나머지 점수의 합을 return 합니다.

 

- 예시

Scores return
[50, 35, 78, 91, 85] 213

 

- 예시 설명

예시 #1

가장 높은 점수 : 91

가장 낮은 점수 : 35

가장 높은 점수와 가장 낮은 점수를 제외한 나머지 점수들의 합은 50 + 78 + 85 = 213점입니다.

 

A>

def func_a(s):              # 가장 큰 수를 찾는 함수
    ret = 0
    for i in s:
        if i > ret:
            ret = i
    return ret

def func_b(s):              # 모든 요소의 합을 구하는 함수
    ret = 0
    for i in s:
        ret += i
    return ret

def func_c(s):              # 가장 작은 수를 찾는 함수
    ret = 101
    for i in s:
        if i < ret:
            ret = i
    return ret

def solution(scores):
    sum = func_b(scores)                    # 모든 과목 점수의 합을 할당
    max_score = func_a(scores)              # 최고 점수를 할당
    min_score = func_c(scores)              # 최저 점수를 할당
    return sum - max_score - min_score      # 모든 과목 점수의 합 - 최고점수 - 최저점수

student_score = solution([50, 35, 78, 91, 85])
print(student_score)

 

F>

Quiz2.py
0.00MB

 

#>

https://programmers.co.kr/learn/courses/33