트랙
/
Nim
Nim
/
연습 문제
/
학교 명부
학교 명부

학교 명부

쉬움

지침

학생들의 이름과 그 학생이 속한 학년이 주어지면, 학교 명단을 만들어요.

최종적으로 다음을 할 수 있어야 해요.

  • 특정 학년의 명단에 학생 이름을 추가하기
    • "2학년에 Jim을 추가해 주세요."
    • "네."
  • 특정 학년에 등록된 모든 학생 목록 가져오기
    • "2학년에는 어떤 학생들이 있나요?"
    • "지금은 Jim 한 명뿐이에요."
  • 모든 학년의 모든 학생을 정렬된 목록으로 가져오기 학년은 1, 2, 3 순으로 정렬하고, 같은 학년 안에서는 이름을 알파벳순으로 정렬해야 해요.
    • "지금 학교에 등록된 학생은 모두 누구인가요?"
    • "생각해 볼게요. 1학년에 Anna, Barb, Charlie가 있고, 2학년에 Alex, Peter, Zoe, 5학년에 Jim이 있어요. 그래서 답은 Anna, Barb, Charlie, Alex, Peter, Zoe, Jim이에요."

참고로 이 학교 학생들은 모두 이름이 하나뿐이고(작은 마을이니까요, 뭘 어쩌겠어요?), 각 학생은 같은 학년이나 명단에 두 번 이상 추가할 수 없어요. 실제로 테스트에서 같은 학생을 두 번 이상 추가하려고 하면, 구현이 이것이 잘못되었음을 알려 주어야 해요.

힌트

테스트를 통과하려면 코드가 동작하도록 몇 가지 타입을 만들어야 해요. School 객체는 Student 타입의 시퀀스를 담아야 하고, Student 타입은 학생들의 이름과 학년을 담는 string과 int의 튜플이에요.

시작하는 데 도움이 될 만한 타입 코드가 여기 있어요.

type
  Student* = tuple[name: string, grade: int]
  School* = object
    students*: seq[Student]

출처

gSchool에서 Phil Battos와 함께한 페어 세션
GitHub에서 편집 링크가 새 창이나 탭에서 열려요
Nim Exercism

학교 명부 문제를 시작해 볼 준비가 됐나요?

Exercism에 가입하고 Nim 트랙을 연습 문제 70개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.