📝 문제
💡 당신은 게임으로 펫을 기르고 있습니다.
이 펫은 웃는 표정, 슬픈 표정을 가지고 있으며, 만약 죽는다면 '드러눕습니다.'
펫에게는 적정 체중이 있습니다.
펫의 실제 체중이 적정 체중의 1/2배를 초과하면서 적정 체중의 2배 미만이라면 펫은 행복합니다.
펫의 실제 체중이 0 이하일 경우 펫은 사망하게 되며, 그 외의 경우 펫은 슬픕니다.
당신은 콘솔을 통해 펫에게 아래의 두 가지 작용을 할 수 있습니다.
'E'와 숫자를 입력해 펫을 운동시킬 수 있습니다.
입력된 숫자(n)만큼의 시간(분; minute)이 지나면 펫의 실제 체중이 n 감소합니다.
'F'와 숫자를 입력해 펫에게 먹이를 줄 수 있습니다.
입력된 숫자(n)만큼 펫에게 먹이를 주면 펫의 실제 체중이 n 증가합니다.
각 작용에 입력할 수 있는 숫자는 1 이상, 999 이하의 정수입니다.
매 작용이 끝날 때마다 펫은 자신의 상태를 표시하며, 펫이 중간에 죽는다면 이후의 작용은 무시됩니다.
⚙️ 입력 : 입력은 번호를 가진 시나리오들로 구성됩니다.
시나리오는 1번부터 시작되며 1씩 증가합니다.
적정 체중(o)와 실제 체중(w)가 한 줄에 입력됨으로써 시나리오가 시작됩니다(10 ≤ o, w ≤ 1000).
그 다음 줄부터 펫에 가할 작용이 한 줄에 하나씩 주어지며,
"# 0"을 마지막 줄로 하여 시나리오가 종료됩니다.
"# 0"은 처리하지 않습니다.
펫에게 가할 각 작용은 'E' 또는 'F'로 시작하며, 공백을 두고 숫자 n (1 ≤ n ≤ 999)이 주어집니다.
모든 시나리오가 끝나면 "0 0"이 입력되며, "0 0"은 처리하지 않습니다.
⚙️ 출력 : 각 시나리오에 대하여,
시나리오 번호와 모든 작용이 완료된 후 펫의 상태를 공백으로 구분하여 한 줄씩 출력합니다.
행복한 경우, ":-)"을 출력합니다.
슬픈 경우 ":-("을 출력합니다.
사망한 경우 "RIP"를 출력합니다.
1362번: 펫
당신은 게임으로 펫을 기르고 있습니다. 이 펫은 웃는 표정, 슬픈 표정을 가지고 있으며, 만약 죽는다면 '드러눕습니다.' 펫에게는 적정 체중이 있습니다. 펫의 실제 체중이 적정 체중의 1/2배를
www.acmicpc.net
✅ 풀이
no = 1
while True:
o, w = map(int, input().split())
status = 1
if o == 0 and w == 0:
break
while True:
action, num = input().split()
num = int(num)
if action == '#' and num == 0:
break
if action == "E" and status == 1:
w -= num
elif action == "F" and status == 1:
w += num
if w <= 0:
status = 0
print(w)
if w > 0.5 * o and w < 2 * o:
print(no, ":-)")
elif w <= 0:
print(no, "RIP")
else:
print(no, ":-(")
no += 1
💡 각 시나리오에서 운동이 진행된 이후와 먹이를 먹은 이후의 무게를 계산해주었다.
시나리오별로 펫이 죽게 되면 모든 행동을 멈추게 되므로
status라는 별도의 변수를 두어, 행동을 마칠 때마다 펫의 생사여부를 체크했다.
시나리오가 종료되면 펫의 무게를 체크하여 적절한 상태가 출력되도록 했다.
📝 문제
💡 당신은 게임으로 펫을 기르고 있습니다.
이 펫은 웃는 표정, 슬픈 표정을 가지고 있으며, 만약 죽는다면 '드러눕습니다.'
펫에게는 적정 체중이 있습니다.
펫의 실제 체중이 적정 체중의 1/2배를 초과하면서 적정 체중의 2배 미만이라면 펫은 행복합니다.
펫의 실제 체중이 0 이하일 경우 펫은 사망하게 되며, 그 외의 경우 펫은 슬픕니다.
당신은 콘솔을 통해 펫에게 아래의 두 가지 작용을 할 수 있습니다.
'E'와 숫자를 입력해 펫을 운동시킬 수 있습니다.
입력된 숫자(n)만큼의 시간(분; minute)이 지나면 펫의 실제 체중이 n 감소합니다.
'F'와 숫자를 입력해 펫에게 먹이를 줄 수 있습니다.
입력된 숫자(n)만큼 펫에게 먹이를 주면 펫의 실제 체중이 n 증가합니다.
각 작용에 입력할 수 있는 숫자는 1 이상, 999 이하의 정수입니다.
매 작용이 끝날 때마다 펫은 자신의 상태를 표시하며, 펫이 중간에 죽는다면 이후의 작용은 무시됩니다.
⚙️ 입력 : 입력은 번호를 가진 시나리오들로 구성됩니다.
시나리오는 1번부터 시작되며 1씩 증가합니다.
적정 체중(o)와 실제 체중(w)가 한 줄에 입력됨으로써 시나리오가 시작됩니다(10 ≤ o, w ≤ 1000).
그 다음 줄부터 펫에 가할 작용이 한 줄에 하나씩 주어지며,
"# 0"을 마지막 줄로 하여 시나리오가 종료됩니다.
"# 0"은 처리하지 않습니다.
펫에게 가할 각 작용은 'E' 또는 'F'로 시작하며, 공백을 두고 숫자 n (1 ≤ n ≤ 999)이 주어집니다.
모든 시나리오가 끝나면 "0 0"이 입력되며, "0 0"은 처리하지 않습니다.
⚙️ 출력 : 각 시나리오에 대하여,
시나리오 번호와 모든 작용이 완료된 후 펫의 상태를 공백으로 구분하여 한 줄씩 출력합니다.
행복한 경우, ":-)"을 출력합니다.
슬픈 경우 ":-("을 출력합니다.
사망한 경우 "RIP"를 출력합니다.
1362번: 펫
당신은 게임으로 펫을 기르고 있습니다. 이 펫은 웃는 표정, 슬픈 표정을 가지고 있으며, 만약 죽는다면 '드러눕습니다.' 펫에게는 적정 체중이 있습니다. 펫의 실제 체중이 적정 체중의 1/2배를
www.acmicpc.net
✅ 풀이
no = 1
while True:
o, w = map(int, input().split())
status = 1
if o == 0 and w == 0:
break
while True:
action, num = input().split()
num = int(num)
if action == '#' and num == 0:
break
if action == "E" and status == 1:
w -= num
elif action == "F" and status == 1:
w += num
if w <= 0:
status = 0
print(w)
if w > 0.5 * o and w < 2 * o:
print(no, ":-)")
elif w <= 0:
print(no, "RIP")
else:
print(no, ":-(")
no += 1
💡 각 시나리오에서 운동이 진행된 이후와 먹이를 먹은 이후의 무게를 계산해주었다.
시나리오별로 펫이 죽게 되면 모든 행동을 멈추게 되므로
status라는 별도의 변수를 두어, 행동을 마칠 때마다 펫의 생사여부를 체크했다.
시나리오가 종료되면 펫의 무게를 체크하여 적절한 상태가 출력되도록 했다.