본문 바로가기
프로그램

[파이썬] 문제 : 재고품관리

by 오디세이99 2022. 11. 20.
728x90
반응형

문제

파이썬 append를 사용해서 리스트를 만들어 푸는 문제입니다. 
이 코드 좀 알려주세요.
문제
(리스트, 객체, 복잡한 루프) 재고품 관리를 하려고 한다. 사용자 입력은 다음과 같이 입력한다.

물건의 개수:
각 물건당 품명(문자열), 가격(정수), 개수(정수) 로 입력
품명:
가격:
개수:

비품이 떨어지지 않도록 비품을 3개 이상으로 유지한다고 할 때, 
각각 사야할 비용과 가격, 총 비용을 계산해 출력하여라

 

class Shop:                        # 객체 선언
    def __init__(self):            # 클래스에서 인스턴스 생성시 항상 실행되는 초기화 Method
        self.product = []
    
    def add(self, name, price, cnt):              # 물건단 품명, 가격, 개수 입력
        self.product.append([name, price, cnt])    # 리스트의 append로 상품 추가
    
    def show(self):                               # 전체 비품 목록 리스트 Method
        print('[상품 목록]')
        for i in range(len(self.product)):
            print(f'[{i}] 품명={self.product[i][0]}, 단가={self.product[i][1]}, 수량={self.product[i][2]}')
    
    def needProduct(self):                        # 비품이 3개 이상 유지하기 위해 3개 이하인 목록
        idx = 0                                   # 목록의 순서를 위한 변수
        buy_total = 0                             # 3개 미만 품목의 총 비용 변수
        print('[3개 이항 상품]')
        for i in range(len(self.product)):        # 복잡한 루프(?). 비품의 수 만큼 반복
            if self.product[i][2] < 3:            # 비품의 수가 3개 보다 작으면
                idx += 1                          # 비품 목록 Count
                price = self.product[i][1]        # 가격정보 가져오기
                cnt = 3 - self.product[i][2]      # 3개 이상을 유지하기 위해 최소 수량 계산
                buy_total += cnt * price          # 구입할 비용을 전체 비용에 더함
                print(f'[{i}] 품명={self.product[i][0]}, 단가={self.product[i][1]}, 필요수량={cnt}, 필요금액={cnt * price}')
        print(f"(총 구입 금액 = {buy_total})")    # 전체 비용 출력


shop = Shop()                 # 상점의 인스탄스 선언.(인스턴스는 클래스가 설계도이고, 인트턴스는 실제 실행)

shop.add('콜라',110, 1)       # 비품 추가
shop.add('오징어땅콘',210, 3) 
shop.add('사이다',100, 4)
shop.add('사과',150, 2)

shop.show()                   # 비품전체 목록 출력 Method
shop.needProduct()            # 3개 미만 비품 목록 및 총비용 출력

결과

[상품 목록]
[0] 품명=콜라, 단가=110, 수량=1
[1] 품명=오징어땅콘, 단가=210, 수량=3
[2] 품명=사이다, 단가=100, 수량=4
[3] 품명=사과, 단가=150, 수량=2
[3개 이항 상품]
[0] 품명=콜라, 단가=110, 필요수량=2, 필요금액=220
[3] 품명=사과, 단가=150, 필요수량=1, 필요금액=150
(총 구입 금액 = 370)
728x90
반응형

댓글