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

학교 명부

보통

지침

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

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

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

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

참고

학생을 별도의 객체로 모델링하는 것이 꼭 필요한 것은 아니에요. 요구 사항이 아주 단순하니, 그 내용이 결과로 새어 나가지만 않는다면 편리한 내부 자료 구조를 써도 돼요.

Note

이 연습 문제는 problem-specifications에서 조금 수정했어요. 학생을 추가하는 일과 학생을 조회하는 일은 각각 별도의 메서드로 나누는 편이 더 자연스럽기 때문이에요. 하나의 메서드가 둘 다 처리하는 방식은 Pharo/Smalltalk답지 않게 느껴져요.


출처

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

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

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