Koala - 11기/기초 알고리즘 스터디

[백준/python] 1362번: 펫

Sin._.ing 2023. 7. 19. 15:23

문제

https://www.acmicpc.net/problem/1362

 

1362번: 펫

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

www.acmicpc.net


문제 설명

각 시나리오마다 적정 체중과 실제 체중을 입력받는다.

명령에 따라 실제 체중을 변화시키고, 시나리오가 종료되면 조건에 따라 펫의 상태를 출력한다.


코드

import sys
input = __import__('sys').stdin.readline

def main():
    idx = 1 # 시나리오 횟수
    while True:
        L, R = map(int, input().rstrip().split())
        if L == R == 0: # L, R 둘다 0이라면 프로그램 종료
            break
        else:
            o = L # o는 적정 체중
            w = R # w는 실제 체중
            while True:
                command, num = input().rstrip().split()
                num = int(num)
                if command == '#' and num == 0: # command에 '#'이 들어오면 시나리오 종료 -> 펫 상태 출력
                    if w > o / 2 and w < o * 2:
                        print(f'{idx} :-)')
                    elif w <= 0:
                        print(f'{idx} RIP')
                    else:
                        print(f'{idx} :-(')
                    idx += 1
                    break
                elif command == 'E' and w > 0:
                    w -= num
                elif command == 'F' and w > 0:
                    w += num

    
if __name__ == "__main__":
    main()

코드 설명

1. 반복문을 통해 두 문자열 L, R을 입력받는다.

+ 만약 두 문자열이 모두 0이라면 프로그램을 종료한다. 아니라면, L은 적정 체중 o, R은 실제 체중 w이다.

2. 반복문 안에 반복문을 넣고 문자열 변수 command와 정수형 변수 num을 입력받는다.

3. command가 '#', num이 0이라면, 시나리오가 종료되므로 조건에 따른 상태를 출력한다.

4. command가 'E'라면 실제 체중에서 num을 빼고, 'F'라면 더해준다.