URL https://programmers.co.kr/learn/courses/33/lessons/1856
문제 설명
- 한 학생의 과목별 점수가 들어있는 배열이 주어졌을 때, 이 학생의 최고 점수와 최저 점수를 제외한 나머지 점수들의 합계를 구하려 합니다. 이를 위해 다음과 같이 4단계로 프로그램 구조를 작성했습니다.
- 모든 과목 점수의 합을 구합니다.
- 최고 점수를 구합니다.
- 최저 점수를 구합니다.
- (모든 과목 점수의 합) - (최고 점수) - (최저 점수)의 값을 return 합니다.
- 학생의 과목별 점수가 들어있는 배열 scores가 매개변수로 주어질 때, 학생의 과목별 점수에서 최고 점수와 최저 점수를 제외한 나머지 점수의 합을 return 하도록 solution 함수를 작성하려 합니다. 위 구조를 참고하여 코드가 올바르게 동작할 수 있도록 빈칸에 주어진 funca, funcb, func_c 함수를 알맞게 채워주세요.
매개변수 설명
- 학생의 과목별 점수가 들어있는 배열 scores가 solution 함수의 매개변수로 주어집니다.
- scores의 길이는 3 이상 10 이하입니다.
- 학생의 점수는 0점 이상 100점 이하의 정수이며, 같은 점수를 받은 과목은 없습니다.
return 값 설명
- solution 함수는 학생의 과목별 점수에서 최고 점수와 최저 점수를 제외한 나머지 점수의 합을 return 합니다.
빈칸 코드
- 빈칸 채우기 문제 안내
- 빈칸 채우기는 이미 완성된 코드 중 빈칸에 알맞은 코드를 입력하는 문제 타입입니다.
- 빈칸을 제외한 기본 코드는 수정할 수 없습니다.
- 빈칸을 채우지 않을 경우, 실행 결과에 에러 메시지가 표시됩니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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_'빈칸'('빈칸')
max_score = func_'빈칸'('빈칸')
min_score = func_'빈칸'('빈칸')
return sum - max_score - min_score
문제 풀이
- func_a : 주어진 배열 s에서 가장 큰 수를 찾는 함수
- func_b : 주어진 배열 s를 모두 더하는 함수
- func_c : 주어진 배열 s에서 가장 작은 수를 찾는 함수
- 위의 3가지 함수를 파악후 max_socre에는 func_a를, sum에는 func_b를 min_socore에는 func_c를 넣고 모두 변수로 socore를 받으면 된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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