H(층) W(층당 방개수) 의 호텔이 있다.
아래의 경우 H(3) W(4) 인 호텔의 모습니다.
W=4
------------------
E|301|302|303|304|
l|201|202|203|204| H=3
e|101|102|103|104|
------------------
사람들은 엘리베이터에서 가까운 방, 같은 거리라면 아래층을 선호한다.
엘리베이터를 타고 이동하는 거리는 신경쓰지 않는다.
선호도로 나열해 보면, 101, 201, 301, 102, 202 ...순이 된다.
N 번째 손님이 경우, 선호하는 순으로 방을 배정하시오.
입력:
첫줄에 테스트 케이스 개수 T, 둘째줄에 H W N (1 ≤ H, W ≤ 99, 1 ≤ N ≤ H × W)
출력:
배정할 방번호
문제풀이+해설
호수는 [층수][호수]의 조합이다.
선호도는 앞쪽호수 우선, 층수쪽으로 우선이다.
N 번째 손님이라면, /(나누기 몫), 호수는 1부터 시작하므로 +1 해줌.
선호 호수 = (N / 층수) + 1
가 되고, %(나누기 나머지)
선호 층수 = N % 층수
가 된다.
여기서 한가지 고려해야 할 것은 손님 순서가 층수의 배수이면 나머지가 0 이 된다.
0이 의미하는 건 0층이 아니라 꼭대기 층일 경우이다. 그래서 나머지가 0일 경우 별도 처리해 주어야 한다.
호수 = N / H
층수 = H (꼭대기층)
이 된다.
숫자 좌측을 0으로 채우기 위해, str(n).zfill(2)를 사용했다.
n을 문자열로 만들고, 좌측 빈자리는 0으로 채워진다.
5 라면 05, 25 라면 그냥 25 가 된다.