클래스작성3


답안 제출

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

문제 유형
허용된 언어
Python

도서관의 도서 목록을 관리하고 현재 보관 중인 도서의 개수를 추적하는 클래스 Book을 작성하시오.

파이썬의 정보은닉 기능(__)을 활용하여 클래스를 설계해야 합니다.

<조건>

  1. 클래스의 이름은 Book으로 하시오.
  2. 현재 보관 중인 도서의 개수를 나타내는 클래스 변수 이름은 cnt로 작성하되, 외부에서 접근하지 못하도록 정보은닉하시오.
  3. 생성된 도서 인스턴스들을 저장하는 inst_list 리스트를 클래스 변수로 관리하시오.
  4. 인스턴스 변수는 도서의 고유 번호 id, 도서명 title, 가격 price로 작성하되, 외부에서 접근하지 못하도록 모두 정보은닉하시오.
  5. 현재 보관 중인 도서의 개수를 출력하는 print_cnt() 메소드를 반드시 작성하시오.
  6. inst_list의 k번째 도서 인스턴스를 소멸시키는 del_inst() 메소드를 반드시 작성하시오.

입력 설명

첫째 줄에 작업의 개수 n이 입력된다. 둘째 줄부터 n개의 도서 등록(생성) 및 폐기(소멸) 데이터가 입력된다. 데이터의 첫 번째 항목이 1이면 등록이고, 2이면 폐기이다. 등록(1)일 때는 뒤이어 고유번호(정수), 도서명(문자열), 가격(정수)이 입력된다. 폐기(2)일 때는 뒤이어 폐기할 도서의 생성 순서(1부터 시작하는 순번)가 입력된다.

출력 설명

실행 코드에 의해 등록 또는 폐기되는 도서의 정보와 현재 보관 중인 도서의 개수를 출력한다. (출력 형식은 예시 출력을 참고하시오)

예시 입력 1

3
1 101 Python 25000
1 102 Algorithm 30000
2 1

예시 출력 1

[101] Python (25000원) 도서 등록
현재 도서 개수=1
[102] Algorithm (30000원) 도서 등록
현재 도서 개수=2
[101] Python (25000원) 도서 폐기
현재 도서 개수=1
현재 도서 개수=3
[102] Algorithm (30000원) 도서 폐기

Hidden Code (rear)

n = int(input())
for i in range(n):
    a = input().split()
    cmd = int(a[0])
    if cmd == 1:
        Book(int(a[1]), a[2], int(a[3]))
    elif cmd == 2:
        Book.del_inst('', int(a[1]) - 1)  
    Book.print_cnt('')

Book._Book__cnt = n  
Book.print_cnt('')

코멘트

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