반응형
Notice
Recent Posts
Link
«   2025/01   »
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 27 28 29 30 31
Archives
Today
Total
관리 메뉴

500error

[COS Pro 2급, Python] 4차 7번 : 오른 점수와 떨어진 점수 구하기 본문

알고리즘/파이썬

[COS Pro 2급, Python] 4차 7번 : 오른 점수와 떨어진 점수 구하기

Internal Server Error 2024. 1. 4. 21:59
반응형

문제

중간시험 점수와 기말시험 점수가 있습니다. 이를 바탕으로 점수가 가장 많이 오른 학생의 점수 차이와 가장 많이 떨어진 학생의 점수 차이를 구하려 합니다. 이를 위해 다음과 같이 프로그램 구조를 작성했습니다.

1. 각 학생에 대하여 기말고사 점수에서 중간고사 점수를 뺀 값의 최댓값을 구합니다.
2. 각 학생에 대하여 기말고사 점수에서 중간고사 점수를 뺀 값의 최솟값을 구합니다.
3. 1번과 2번 과정에서 구한 점수를 배열에 담아 return 합니다.
 
예를 들어 중간시험 점수가 [20, 50, 40]이고, 기말시험 점수가 [10, 50, 70]이면, 학생의 시험 점수 차이는 [-10, 0, 30]입니다. 따라서 성적이 가장 많이 오른 학생은 30점이 올랐습니다. 그리고 성적이 가장 많이 떨어진 학생은 10점이 떨어졌습니다.
학번순으로 중간시험 점수를 담은 배열 mid_scores, mid_scores의 길이 mid_scores_len, 학번순으로 기말시험 점수를 담은 배열 final_scores, final_scores의 길이 final_scores_len이 solution 함수의 매개변수로 주어집니다. 이 때 성적이 가장 많이 오른 학생의 점수 차이를 배열 첫 번째 원소로, 성적이 가장 많이 떨어진 학생의 점수 차이를 두 번째 원소로 담은 배열을 return 하도록 solution 함수를 작성했습니다. 그러나, 코드 일부분이 잘못되어있기 때문에, 몇몇 입력에 대해서는 올바르게 동작하지 않습니다. 주어진 코드에서 한 줄만 변경해서 모든 입력에 대해 올바르게 동작하도록 수정하세요.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

code

def func_a(scores1, scores2):
	answer = 0
	for score1, score2 in zip(scores1, scores2):
		answer = max(answer, score2 - score1)
	return answer

def func_b(scores1, scores2):
	answer = 0
	for score1, score2 in zip(scores1, scores2):
		answer = min(answer, score1 - score2)
	return answer


def solution(mid_scores, final_scores):
	up = func_a(mid_scores, final_scores)
	down = func_b(final_scores, mid_scores)
	answer = [up, down]
	return answer
    
    
    
mid_scores = [20, 50, 40]
final_scores = [10, 50, 70]
ret = solution(mid_scores, final_scores)

print("solution 함수의 반환 값은", ret, "입니다.")
반응형
Comments