Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python으로 주차 시스템을 설계하는 프로그램

<시간/>

주차 시스템을 설계한다고 가정합니다. 주차장에는 대, 중, 소의 3가지 종류의 주차 공간이 있습니다. 그리고 각 크기에 대해 고정된 수의 슬롯이 있습니다. 두 가지 방법으로 OurParkingSystem이라는 클래스를 만드십시오 -

  • 생성자(대형, 중형, 소형) − 이 생성자는 다른 공간에 사용할 수 있는 슬롯 수를 가져오고 OurParkingSystem 클래스의 개체를 초기화합니다.

  • addCar(carType) − 주차장에 싣고자 하는 차량에 대해 주어진 carType의 주차공간이 있는지 확인하는 방법입니다.

대, 중, 소 3개의 슬롯은 각각 1, 2, 3으로 표시됩니다. 제약 조건은 carType이 일치하는 경우에만 자동차가 주차 공간에 주차할 수 있다는 것입니다. 사용 가능한 공간이 없으면 false를 반환하고, 그렇지 않으면 해당 크기의 공간에 차를 주차하고 true를 반환합니다.

큰 차를 위한 공간이 2개 있고 중형차를 위한 공간이 없고 작은 차를 위한 공간이 1개 있는 경우 생성자 호출은 OurParkingSystem(2, 0, 1)과 같을 것이고 addCar를 다음과 같이 호출하면 -

addCar(3) - 작은 차 한 대를 추가하고 true를 반환합니다.

addCar(2) − 중형차를 추가할 공간이 없으므로 false를 반환합니다.

addCar(3) − 새 소형차를 추가할 공간이 없으므로 false를 반환합니다.

AddCar(1) - 하나의 큰 차를 추가하고 true를 반환합니다.

AddCar(1) - 다른 큰 차를 추가하고 true를 반환합니다.

AddCar(1) − 다른 큰 차를 위한 공간이 없으므로 false를 반환합니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • 함수 생성자()를 정의합니다. 큰, 중간, 작은 작업이 필요합니다.

  • sp :=[0,big,medium,small]과 같은 목록

  • addCar() 함수를 정의합니다. carType이 걸립니다.

  • sp[carType]> 0이면

    • sp[carType] :=sp[carType] - 1

    • 참을 반환

  • 거짓을 반환

예제(파이썬)

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

class OurParkingSystem:
   def __init__(self, big, medium, small):
      self.sp = [0,big,medium,small]

   def addCar(self, carType):
      if(self.sp[carType] >0 ):
         self.sp[carType] -= 1
         return True
      return False

ps = OurParkingSystem(2, 0, 1)
print(ps.addCar(3))
print(ps.addCar(2))
print(ps.addCar(3))
print(ps.addCar(1))
print(ps.addCar(1))
print(ps.addCar(1))

입력

ps.addCar(3)
ps.addCar(2)
ps.addCar(3)
ps.addCar(1)
ps.addCar(1)
ps.addCar(1)

출력

True
False
False
True
True
False