백준 10250 ACM호텔
19 Jun 2021 | 기초 백준 TIL 주석 추가하기문제 설명
호텔에서 엘리베이터에 가까운 방 순으로 방을 배정한다.
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)