065. 학생 성적 관리
Medium
바이브코딩
MCPEducationCRUD
문제 설명
[문제]
학생 성적 관리 MCP 서버를 구현하시오.
학생별로 여러 점수를 기록하고, 평균을 내고, 평균이 높은 순으로 순위를 매긴다. 한 학생은 점수를 여러 개 가질 수 있다.
[구현할 함수]
- add_student(name: str) -> int
이름 name인 학생을 등록한다(점수는 아직 없음). 등록 후 전체 학생 수를 반환한다.
- add_score(name: str, score: float) -> bool
등록된 학생 name에게 점수 하나를 추가한다. 등록된 학생이면 True, 등록되지 않은 학생이면 False를 반환한다.
- get_average(name: str) -> number
학생 name의 점수 평균을 반환한다. 학생이 없거나 점수가 하나도 없으면 -1을 반환한다.
- get_ranking() -> array<string>
학생들을 평균 점수 내림차순으로 정렬한 이름 배열을 반환한다.
[입력·상태]
서버는 학생 이름 -> 점수 목록 형태의 키-값 저장소를 상태로 유지한다. 초기 상태는 학생이 없는 빈 상태이다.
[제약]
- 한 학생은 점수를 여러 개 가질 수 있고, 평균은 그 점수들의 산술평균이다.
- 등록되지 않은 학생에게 add_score는 False이다.
- 없는 학생 또는 점수 없는 학생의 평균은 -1이다.
- 학생이 없으면 ranking은 빈 배열 [] 이다.
[예시]
add_student("홍길동") -> 1
add_student("홍길동"); add_score("홍길동", 85) -> True; get_average("홍길동") -> 85
add_student("홍길동"); add_score("홍길동", 80); add_score("홍길동", 90); get_average("홍길동") -> 85
add_student("홍길동"); add_score("홍길동", 80); get_ranking() -> ["홍길동"]
add_score("없음", 85) -> False # 미등록 학생 (경계)
get_average("없음") -> -1 # 없는 학생 (경계)
get_ranking() -> [] # 빈 상태 (경계)
로그인하고 풀기
AI가 자동 채점하고 즉시 정답·해설을 알려줘요. 무료.