관리 메뉴

솜씨좋은장씨

[BaekJoon] 1362번 : 펫 (Python) 본문

Programming/코딩 1일 1문제

[BaekJoon] 1362번 : 펫 (Python)

솜씨좋은장씨 2022. 7. 6. 21:45
728x90
반응형

코딩 1일 1문제! 오늘의 문제는 백준의 펫 입니다.

 

1362번: 펫

당신은 게임으로 펫을 기르고 있습니다. 이 펫은 웃는 표정, 슬픈 표정을 가지고 있으며, 만약 죽는다면 '드러눕습니다.' 펫에게는 적정 체중이 있습니다. 펫의 실제 체중이 적정 체중의 1/2배를

www.acmicpc.net

👨🏻‍💻 코드 ( Solution )

class Pet:    
    def __init__(self, o, w):
        self.proper_weight = o
        self.real_weight = w
        self.status = ":-("
    
    def check_status(self):        
        if self.proper_weight * 0.5 < self.real_weight < self.proper_weight * 2:
            self.status = ":-)"
        elif self.real_weight <= 0:
            self.status = "RIP"
        else:
            self.status = ":-("

        return self.status
            
    def excercise(self, n):
        self.real_weight = self.real_weight - int(n)
    
    def feed(self, n):
        self.real_weight = self.real_weight + int(n)
    
    
def input_scenario():
    total_scenario = []
    each_scenario = []
    
    while True:
        scenario = input()
        
        if scenario == "0 0":
            break
            
        if scenario == "# 0":
            total_scenario.append(each_scenario)
            each_scenario = []
            continue
        
        each_scenario.append(scenario)
        
    return total_scenario

    

def pet_game(scenario_list):
    pet_status_list = []
    for total_scenario_num, each_scenario_list in enumerate(scenario_list, start=1):
        pet_status = None
        
        for each_scenario_num, each_scenario in enumerate(each_scenario_list):
            split_scenario = each_scenario.split()

            if each_scenario_num == 0:
                o, w = map(int, each_scenario.split())
                new_pet = Pet(o, w)
                continue

            if split_scenario[0] == "F":
                new_pet.feed(n=split_scenario[1])
            elif split_scenario[0] == "E":
                new_pet.excercise(n=split_scenario[1])

            pet_status = new_pet.check_status()


            if pet_status == "RIP":
                break
                    
        pet_status_list.append(f"{total_scenario_num} {pet_status}")
        
    return pet_status_list
            
    
if __name__ == "__main__":
    scenario_list = input_scenario()
    
    pet_status_list = pet_game(scenario_list=scenario_list)
    
    for pet_status in pet_status_list:
        print(pet_status)
 

GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 since 2020.02.07

1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub.

github.com

Comments