문제설명
학생들의 시험 점수가 주어졌을 때, n번 학생이 몇 등인지 구하려 합니다. 학번은 0번부터 시작하며, 시험 점수는 학번순으로 주어집니다.
예를 들어 학생 네 명의 시험 점수가 다음과 같은 경우
3번 학생은 3등을 했습니다.
이를 위해 다음과 같이 프로그램 구조를 작성했습니다.
~~~
1. n번 학생의 점수를 변수에 저장합니다.
2. 점수를 내림차순으로 정렬합니다.
3. 리스트의 첫 번째 원소부터 마지막 원소까지 순회하며 n번 학생의 점수를 찾습니다.
3-1. 1번 단계에서 저장해둔 점수와 같은 점수를 찾으면 등수를 return 합니다.
~~~
학생들의 시험 점수가 번호순으로 들은 리스트 scores와 학번 n이 solution 함수의 매개변수로 주어질 때, n번 학생의 등수를 return 하도록 solution 함수를 작성하려 합니다. 위 구조를 참고하여 코드가 올바르게 동작하도록 빈칸에 주어진 func_a, func_b, func_c 함수와 매개변수를 알맞게 채워주세요.
매개변수 설명
학생들의 시험 점수가 번호순으로 들은 리스트 scores와 학번 n이 solution 함수의 매개변수로 주어집니다.
* scores의 길이는 1 이상 100 이하입니다.
* 점수는 0점 이상 100점 이하이며 동점자는 없습니다.
* n은 0 이상 (scores의 길이 - 1) 이하의 정수입니다.
return 값 설명
n번 학생의 등수를 return 해주세요.
예시
| scores | n | result |
|------------------|---|--------|
| [20, 60, 98, 59] | 3 | 3 |
예시 설명
* 3번 학생의 점수는 59점입니다.
* 점수를 내림차순으로 정렬하면 [98, 60, 59, 20]입니다.
* 정렬된 점수에서 59는 3번째에 있습니다.
따라서 3번 학생은 3등입니다.
문제 코드
def func_a(scores, score):
rank = 1
for s in scores:
if s == score:
return rank
rank += 1
return 0
def func_b(arr):
arr.sort(reverse=True)
def func_c(arr, n):
return arr[n]
def solution(scores, n):
score = func_@@@(@@@)
func_@@@(@@@)
answer = func_@@@(@@@)
return answer
풀이
# scores에서 score의 순서 구하기
def func_a(scores, score):
rank = 1
for s in scores:
if s == score:
return rank
rank += 1
return 0
# 내림차순 정렬
def func_b(arr):
arr.sort(reverse=True)
# arr의 n번째 원소 구하기
def func_c(arr, n):
return arr[n]
def solution(scores, n):
score = func_c(scores, n)
func_b(scores)
answer = func_a(scores, score)
return answer
댓글