루나의 TIL 기술 블로그

백준 10250 ACM호텔

|

백준 - ACM호텔

문제 설명

호텔에서 엘리베이터에 가까운 방 순으로 방을 배정한다.
102호보다 2101호가 엘리베이터에 더 가깝다. 호텔

프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수를 포함하고 있으며 각각 호텔의 층 수, 각 층의 방 수, 몇 번째 손님인지를 나타낸다(1 ≤ H, W ≤ 99, 1 ≤ N ≤ H × W).

테스트 데이터마다 정확히 한 행을 출력하는데, N 번째 손님에게 배정되어야 하는 방 번호를 출력한다.

사고 과정

층수(H)만큼 배정하면 방수(W)를 하나씩 올린다. 예를 들어
6층 층별 12방 10번째 손님이면 6x1 +4 니까 402호
30층 층별 50방 72번째 손님이면 30x2 +12 니까 1203호
그래서 계산하면 guest_num % h층 guest_num//h+1호에 배정한다.

n = int(input())
for _ in range(n):
  h, w, guest_num = map(int,input().split()) 
  print(((guest_num%h)*100) + (guest_num//h)+1)

101,201,301..호 일때를 빼먹었다.

제출답안

n = int(input())
for _ in range(n):
  h, w, guest_num = map(int,input().split())
  floor = guest_num%h
  num = guest_num//h+ 1
  if floor == 0:
    print(h*100 + num-1)  
  else:
    print(floor*100 + num)