전등 클래스
전원 상태와 밝기를 관리하는 Light 클래스를 작성하시오.
작성할 클래스
다음 형태의 클래스를 작성한다.
class Light:
def __init__(self):
# 코드를 작성하세요.
def turnOn(self):
# 코드를 작성하세요.
def turnOff(self):
# 코드를 작성하세요.
def toggle(self):
# 코드를 작성하세요.
def changeBrightness(self, amount):
# 코드를 작성하세요.
def getBrightness(self):
# 코드를 작성하세요.
- 생성자
__init__()은 전원이 꺼지고 밝기가 0인 상태로 초기화한다. turnOn()은 전원을 켜고 값을 반환하지 않는다.turnOff()은 전원을 끄고 값을 반환하지 않는다. 저장된 밝기는 변경하지 않는다.toggle()은 전원 상태를 반대로 변경하고 값을 반환하지 않는다.changeBrightness(amount)는 전원이 켜져 있을 때만 저장된 밝기에amount를 더한다. 결과가 0보다 작으면 0, 100보다 크면 100으로 조정한다. 전원이 꺼져 있다면 밝기를 변경하지 않는다. 값을 반환하지 않는다.getBrightness()는 전원이 꺼져 있으면 0, 켜져 있으면 저장된 밝기를int로 반환한다.
클래스를 사용하는 코드
작성한 클래스는 아래 코드와 함께 실행된다.
q = int(input())
light = Light()
for _ in range(q):
command = input().split()
if command[0] == "on":
result = light.turnOn()
print(type(result))
elif command[0] == "off":
result = light.turnOff()
print(type(result))
elif command[0] == "toggle":
result = light.toggle()
print(type(result))
elif command[0] == "change":
result = light.changeBrightness(int(command[1]))
print(type(result))
else:
result = light.getBrightness()
print(result)
print(type(result))
위 코드가 정상적으로 동작하도록 클래스를 작성한다. 제출할 때는 작성한 클래스의 정의 전체만 제출한다. 입력을 받거나 객체를 생성하는 코드는 제출하지 않는다.
입력
첫째 줄에 명령의 개수 \(Q\)가 주어진다.
다음 \(Q\)개의 줄에 다음 명령 중 하나가 주어진다.
on:turnOn()을 호출한다.off:turnOff()을 호출한다.toggle:toggle()을 호출한다.change amount:changeBrightness(amount)를 호출한다.brightness:getBrightness()를 호출한다.\(1 \le Q \le 1,000\)
- \(-1,000,000,000 \le amount \le 1,000,000,000\)
출력
on, off, toggle, change 명령에서는 호출한 메서드가 반환한 값의 자료형을 출력한다.
각 brightness 명령에서는 현재 출력 밝기와 getBrightness()가 반환한 값의 자료형을 출력한다.
각 메서드를 호출한 뒤에는 반환값의 자료형도 출력한다.
예제 입력 1
12
brightness
change 80
on
change 80
brightness
change 30
brightness
off
brightness
change -50
on
brightness
예제 출력 1
0
<class 'int'>
<class 'NoneType'>
<class 'NoneType'>
<class 'NoneType'>
80
<class 'int'>
<class 'NoneType'>
100
<class 'int'>
<class 'NoneType'>
0
<class 'int'>
<class 'NoneType'>
<class 'NoneType'>
100
<class 'int'>
예제 설명 1
처음에는 전원이 꺼져 있고 저장된 밝기는 \(0\)이다.
- 첫 번째
brightness는 전원이 꺼져 있으므로0을 반환한다. - 꺼진 상태의
change 80은 작동하지 않는다. on으로 전원을 켠 뒤change 80을 적용하면 밝기는 \(80\)이 된다.change 30을 적용한 계산값은 \(110\)이지만 최댓값이 \(100\)이므로 밝기는100이 된다.off로 전원을 끄면brightness는0을 반환한다. 내부에 저장된 밝기 \(100\)은 유지된다.- 꺼진 상태의
change -50은 작동하지 않는다. - 다시
on으로 전원을 켜면 저장된 밝기100이 다시 출력된다.
예제 입력 2
6
on
brightness
change 100
brightness
change 1
brightness
예제 출력 2
<class 'NoneType'>
0
<class 'int'>
<class 'NoneType'>
100
<class 'int'>
<class 'NoneType'>
100
<class 'int'>
코멘트