블록체인 학습
0 XP

Chapter 7 마무리 테스트

이번 챕터에서 배운 동적 배열 선언, push, pop, length, 그리고 배열과 반복문을 결합한 순회를 하나의 컨트랙트로 엮어 봅니다. 주제는 학생들의 점수를 등록하고 관리하는 점수 명부입니다.

이 테스트에서 종합하는 개념

  • 동적 배열 선언과 public getter
  • push로 점수 추가, pop으로 마지막 점수 제거
  • length로 등록된 점수 개수 세기
  • for 반복문으로 배열을 순회하며 최댓값 찾기

마지막 highest 함수는 값을 그대로 읽어 오는 것이 아니라 직접 계산해야 합니다. 누적 변수를 0으로 두고 배열을 처음부터 끝까지 돌면서, 지금까지의 최댓값보다 큰 값을 만날 때마다 갱신하면 됩니다.

점수가 하나도 없는 빈 배열에 pop을 호출하면 revert됩니다. 또한 highest를 빈 배열에서 호출하면 초기값 0이 반환된다는 점도 함께 생각해 보세요.

이 차시에서 배운 배열 개념을 모두 활용해 학생 점수 명부 컨트랙트를 완성하세요.

해야 할 일:

  1. ScoreBoard 컨트랙트를 선언하세요.
  2. scores 라는 uint256[] public 동적 배열을 선언하세요.
  3. addScore(uint256 score) 함수: 점수를 scores 끝에 push 하세요.
  4. removeLast() 함수: 마지막 점수를 pop 으로 제거하세요.
  5. count() 함수: 등록된 점수 개수(scores.length)를 반환하세요. (view, returns (uint256))
  6. highest() 함수: 반복문으로 가장 높은 점수를 찾아 반환하세요. (view, returns (uint256))

완성 후 Run 을 눌러 모든 조건을 통과하는지 확인하세요.

Code Editor
에디터를 불러오는 중...
실행 결과

Run 버튼을 눌러 코드를 실행하세요.