낮 동안 올라가는 길이 A
밤동안 미끌어지는 길이 B
총 가야할 나무 길이 v
정상에서는 미끄러 지지 않는다.
v = (a-b)x + a
x = (v - a) / (a-b)
소수점으로 나오기 때문에 Math.ceil()을 사용하여 올림해준다.
즉 x
는 밤낮 꽉꽉 채워서 가는 날짜 수라고 이해하면 된다.
x
날짜 만큼 간 그 다음날 낮 동안에 a 만큼 이동하여 도착하기 때문에 + 1을 해준다.
import math
import sys
A, B, V = map(int, sys.stdin.readline().split())
x = math.ceil((V - A) / (A-B))
print(x+1)
x
: 엘레베이터에서부터 세었을 때의 번호 즉 층수를 뺀 방 번호
y
: 층수를 나타내는 번호
=> 방번호는 yyxx
라고 보면된다.
x
는 math.ceil(N/H)으로 몇 번 방에 머무를지 구할 수 있다.
y
는 층수로 N(N번째 손님)
에서 H(호텔의 층수)
를 나눈 나머지와 같다.
❗ Y
가 0일 경우
N
이 H
의 배수일 경우 Y
의 값이 0이된다.
이 경우는 꼭대기 층에 머무르는 것으로 즉 H
층 ,X
번째 방에 머무른다.
import sys
import math
num = int(input())
for i in range(num):
H, W, N = map(int, sys.stdin.readline().split())
x = math.ceil(N / H) # 엘레베이터에서 세었을 때의 번호
y = (N % H) * 100 # 층수 # %는 나머지
if y == 0:
y = H * 100
print(y + x)