점수 기록 클래스


답안 제출

Points: 1
시간 제한: 2.0s
메모리 제한: 1G

문제 유형
허용된 언어
Python

입력된 점수를 순서대로 저장하고 조회하는 ScoreRecord 클래스를 작성하시오.

작성할 클래스

다음 형태의 클래스를 작성한다.

class ScoreRecord:
    def __init__(self):
        # 코드를 작성하세요.

    def addScore(self, score):
        # 코드를 작성하세요.

    def removeLast(self):
        # 코드를 작성하세요.

    def getScores(self):
        # 코드를 작성하세요.

    def getHighest(self):
        # 코드를 작성하세요.

    def getLowest(self):
        # 코드를 작성하세요.
  • 생성자 __init__()은 빈 점수 리스트를 만든다.
  • addScore(score)는 점수를 리스트의 마지막에 추가하고 값을 반환하지 않는다.
  • removeLast()는 마지막 점수를 삭제하고 삭제한 점수를 int로 반환한다.
  • getScores()는 현재 모든 점수를 입력된 순서대로 담은 list를 반환한다.
  • getHighest()는 현재 저장된 점수 중 최댓값을 int로 반환한다.
  • getLowest()는 현재 저장된 점수 중 최솟값을 int로 반환한다.
  • removeLast(), getHighest(), getLowest()는 점수가 하나 이상 저장된 경우에만 호출된다.

클래스를 사용하는 코드

작성한 클래스는 아래 코드와 함께 실행된다.

q = int(input())

record = ScoreRecord()

for _ in range(q):
    command = input().split()

    if command[0] == "add":
        result = record.addScore(int(command[1]))
        print(type(result))
    elif command[0] == "remove":
        result = record.removeLast()
        print(result)
        print(type(result))
    elif command[0] == "scores":
        result = record.getScores()
        print(*result)
        print(type(result))
    elif command[0] == "highest":
        result = record.getHighest()
        print(result)
        print(type(result))
    else:
        result = record.getLowest()
        print(result)
        print(type(result))

위 코드가 정상적으로 동작하도록 클래스를 작성한다. 제출할 때는 작성한 클래스의 정의 전체만 제출한다. 입력을 받거나 객체를 생성하는 코드는 제출하지 않는다.

입력

첫째 줄에 명령의 개수 \(Q\)가 주어진다.

다음 \(Q\)개의 줄에 다음 명령 중 하나가 주어진다.

  • add score: addScore(score)를 호출한다.
  • remove: removeLast()를 호출한다.
  • scores: getScores()를 호출한다.
  • highest: getHighest()를 호출한다.
  • lowest: getLowest()를 호출한다.

  • \(1 \le Q \le 1,000\)

  • \(0 \le score \le 100\)

출력

add 명령에서는 addScore()가 반환한 값의 자료형을 출력한다.

remove, highest, lowest 명령에서는 반환값과 그 자료형을 출력한다.

scores 명령에서는 저장된 모든 점수를 공백으로 구분하여 출력하고 반환값의 자료형을 출력한다. 저장된 점수가 없다면 점수 출력 줄은 빈 줄이 된다.

각 메서드를 호출한 뒤에는 반환값의 자료형도 출력한다.

예제 입력 1

12
add 80
add 90
add 70
scores
highest
lowest
remove
scores
add 100
highest
lowest
scores

예제 출력 1

<class 'NoneType'>
<class 'NoneType'>
<class 'NoneType'>
80 90 70
<class 'list'>
90
<class 'int'>
70
<class 'int'>
70
<class 'int'>
80 90
<class 'list'>
<class 'NoneType'>
100
<class 'int'>
80
<class 'int'>
80 90 100
<class 'list'>

예제 설명 1

처음 점수 목록은 비어 있다.

  1. 80, 90, 70을 차례대로 추가하면 목록은 [80, 90, 70]이 된다.
  2. scores는 세 점수를 입력 순서대로 반환한다. 최고점은 90, 최저점은 70이다.
  3. remove는 마지막 점수 70을 삭제하고 반환한다. 목록에는 [80, 90]이 남는다.
  4. 100을 추가하면 목록은 [80, 90, 100]이 된다. 이때 최고점은 100, 최저점은 80이다.

예제 입력 2

5
scores
add 0
scores
remove
scores

예제 출력 2

<class 'list'>
<class 'NoneType'>
0
<class 'list'>
0
<class 'int'>

<class 'list'>

코멘트

현재 작성된 코멘트가 없습니다.