문제풀이/BOJ

[Python] BOJ/백준 1362번 펫

서채리 2021. 6. 14. 19:35

[문제]

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

 

1362번: 펫

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

www.acmicpc.net

 


[풀이]

이번 문제의 놓치기 쉬운 중요한 포인트는 펫이 죽었을 경우에 다시 살릴 수 없다는 것이다.

때문에 'E' 또는 'F'와 n 값이 입력돼 펫의 실제 체중을 구할 때마다 실제 체중이 0 이하인지를 확인해 펫이 죽었는지 확인했다. 만약 die 가 True로 바뀌었을 경우, 조건문 if not die에 진입하지 못해 더 이상 밥을 주거나 운동을 시킬 수 없게 된다.

 


[코드]

if __name__ == '__main__':
    cnt = 0
    while True:
        o, w = map(int, input().split())
        if o == 0 and w == 0:   # "0 0" 입력 시 모든 시나리오 끝남
            quit()

        die = False
        while True:
            action, n = input().split()
            if action == '#' and n == '0':
                break

            if not die:
                n = int(n)
                if action == 'E':
                    w -= int(n)
                elif action == 'F':
                    w += int(n)

            if w <= 0:  # 사망
                die = True

        cnt += 1
        if w <= 0:
            print("%d RIP" % cnt)
        elif o / 2 < w < o * 2:
            print("%d :-)" % cnt)
        else:
            print("%d :-(" % cnt)