728x90
그림 1. H = 6 이고 W = 12 인 H × W 호텔을 간략하게 나타낸 그림
위와 같이 생긴 호텔에서 방 번호는 YXX 나 YYXX 형태인데 여기서 Y 나 YY 는 층 수를 나타내고 XX 는 엘리베이터에서부터 세었을 때의 번호를 나타낸다. 즉, 그림 1 에서 빗금으로 표시한 방은 305 호가 된다.
여러분이 작성할 프로그램은 초기에 모든 방이 비어있다고 가정하에 이 정책에 따라 N 번째로 도착한 손님에게 배정될 방 번호를 계산하는 프로그램이다. 첫 번째 손님은 101 호, 두 번째 손님은 201 호 등과 같이 배정한다. 그림 1 의 경우를 예로 들면, H = 6이므로 10 번째 손님은 402 호에 배정해야 한다.
import sys
if __name__ == '__main__':
num = int(sys.stdin.readline())
for i in range(num):
H, W, N = map(int, sys.stdin.readline().split())
floor = N%H
xx = N // H + 1
if N % H == 0:
xx = N // H
floor = H
print(f'{floor}' + f'{xx}'.rjust(2,'0'))
층 수는 N을 H로 나눈 나머지이고, 대신 N과 H가 나누어 떨어지게 되면 층 수는 0이 되니깐, 나누기 전인 H를 가져와서 쓴다. 또한, 호수는 N을 H로 나눈 몫인데 이도 역시, 층 수가 나누어 떨어지면서 빠진 층 수의 값을 호 수에 더해주는 개념으로 붙였다.
'코드연습 > BOJ' 카테고리의 다른 글
BOJ 2839 : 설탕배달 (0) | 2022.04.13 |
---|---|
BOJ 2775 : 부녀회장이 될테야 (0) | 2022.04.12 |
BOJ 2869 : 달팽이는 올라가고 싶다. (0) | 2022.04.11 |
BOJ 1193 : 분수찾기 (0) | 2022.04.11 |
BOJ 2292 : 벌집 (0) | 2022.04.08 |