[파이썬] 백준 10250 ACM호텔

2021. 5. 2. 16:46개발공부/알고리즘

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

 

10250번: ACM 호텔

프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수

www.acmicpc.net

아 이문제 정말 문제부터 머리아프다🤯
차근차근 이해해보자..

H = 호텔의 층 수
W = 각 층의 방 수
N = 몇 번째 손님

우선 규칙부터 찾아보면,

  • 손님이 묵게 될 방의 층 수 = N%H(N에서 건물 층 수를 나눈 나머지)
  • 손님이 묵게 될 방의 호 수 = N//H+1
  • 만약 N이 건물 층수의 배수라면, 손님의 층 수는 H와 동일 & 호 수는 N//H
t = int(input())
#t개의 테스트 데이터로 이루어져있음

for i in range(t):
    #t개만큼 반복
    h, w, n = map(int,input().split())
    #h,w,n input값 받음
    if n%h == 0:
        #만약 n이 건물 층 수의 배수라면
        rm = n//h
        #손님의 방 호 수
        floor = h
        #손님의 방 층 수
        print(f'{floor*100+rm}')
    else:
        rm = n//h+1
        #손님의 방 호 수
        floor = n%h
        #손님의 방 층 수
        print(f'{floor*100+rm}')
        #여기서 굳이 F-string을 써주지않아도 된다

조금 더 간단하게 적어본다면 아래와 같다.

t = int(input())
#t개의 테스트 데이터로 이루어져있음

for i in range(t):
    #t개만큼 반복
    h, w, n = map(int,input().split())
    #h,w,n input 받음
    RM = n//h+1
    floor = n%h
    if n%h == 0:
        RM = n//h
        floor = h
    print(f'{floor*100+RM}')