[BOJ 1362번] 펫(Python)

2023. 12. 29. 09:32· 코딩 테스트 준비/5정한
목차
  1. 📝 문제
  2. ✅ 풀이

📝 문제

💡 당신은 게임으로 펫을 기르고 있습니다.
이 펫은 웃는 표정, 슬픈 표정을 가지고 있으며, 만약 죽는다면 '드러눕습니다.'

펫에게는 적정 체중이 있습니다.
펫의 실제 체중이 적정 체중의 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. ✅ 풀이
'코딩 테스트 준비/5정한' 카테고리의 다른 글
  • [BOJ 1350번] 진짜 공간(Python)
  • [BOJ 1392번] 노래 악보(Python)
  • [BOJ 1333번] 부재중 전화(Python)
  • [BOJ 1297번] TV 크기(Python)
zzzini
zzzini
종착지는 어디인지 모르지만
zzzini
나의 표류일지
zzzini
전체
오늘
어제
  • 분류 전체보기 (307)
    • ASAC 빅데이터 분석가 4기 (44)
      • Python기초 (6)
      • SQL (3)
      • Matplotlib & Seaborn (2)
      • Data Handling (6)
      • Web Crawling (3)
      • Machine Learning (9)
      • Deep Learning (10)
      • 데이터 분석 (1)
      • 기타 (2)
      • 수학 (2)
    • 코딩 테스트 준비 (168)
      • 5정한 (132)
      • 카카오 (14)
      • PCCP & PCCE (3)
      • 프로그래머스 (19)
    • 자격증 (35)
      • AWS CLF-C02 (18)
      • AWS SAA-C03 (1)
      • Tableau Desktop Specialist (5)
      • Tableau Certified Data Anal.. (11)
    • 독서 (17)
    • Tech (23)
      • Tableau (10)
      • AI (4)
      • Flask (1)
      • Node.js (2)
      • Cloud Computing (2)
      • Git & GitHub (1)
      • Notion API (1)
      • Linux (2)
    • Projects (2)
    • 알고리즘 공부 (6)
    • 🎵 (11)

블로그 메뉴

  • 글 쓰기
  • 홈
  • 방명록

공지사항

hELLO · Designed By 정상우.v4.2.1
zzzini
[BOJ 1362번] 펫(Python)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.