층 수를 구할 때에는 (손님 순서 % 층 수)를 이용하여 구한다.
방 수를 구할 때에는 ((손님 순서 / 방 수) + 1)를 이용하여 구한다.
- 0호부터 시작하는 것이 아니므로 +1을 해줘야 우리가 구하는 방 수를 구할 수 있다.
- 방 수는 층 수만큼 올라갔을 때 +1씩 더해지는 방식이므로 몫을 사용한다.
T = int(input())
for i in range(T):
H, W, customer = map(int, input().split())
first, last = 0, 0
if(1<=customer<=W*H and 1<=H<=99 and 1<=W<=99):
first = customer % H # 층
last = int(customer / H + 1) # 호수
print("{:02d}".format(first), end="")
print("{:02d}".format(last))
-> format 함수를 이용하여 한 자리 숫자일 때는 앞에 0을 붙이고, 아닐 때는 두 자리 출력되도록 설정
층 수를 출력할 때는 한 자리 숫자일 때 그냥 한 자리만 출력하면 되는 것이었다!
print("{:02d}".format(first), end="")
# 에서
print(first, end="")
# 으로 변경
몫과 나머지의 최댓값, 즉 0이 나올 때 처리를 안 해줌
- 계속 실패 뜨길래 원인을 못 찾았었는데, 이게 원인이었다..
```
if(first == 0):
first = H
# 정확하게 맞아 떨어질 때는 0이 되는데, 그때는 최대 값이므로 H 값으로 설정해준다.
last = last -1
# 위와 같이 정확하게 맞아 떨어질 때는 다음 방으로 넘어가는 것이 아닌 해당 층의 끝방이므로 +1을 해주면 안 된다.
```
몫과 나머지 사용할 때는 꼭 0일 때 처리 생각해주기!
빈 자리에 0을 넣기 위해서 사용하는 format 형식은 {:02d}
정수에 자리수를 표현할 때는 "0Nd"로 표현
N에는 원하는 자릿수 입력
자릿수가 부족한 경우는 자동으로 0이 채워짐
print("{:03d}".format(12)) # 012
# 두 개 출력하고 싶을 때에는
print("{0:03d}, {1:03d}".format(12345, 12) # 12345, 012
소수점 자리수를 표현할 때는 "0.Nf"로 표현
- N에는 소수점 아래 표시할 자릿수 입력
print("{:0.2f}".format(123.456789)) # 123.45
repeat = int(input())
for i in range(repeat):
H, W, customer = map(int, input().split())
first, last = 0, 0
if(1<=customer<=W*H and 1<=H<=99 and 1<=W<=99):
first = customer % H # 층
last = int(customer / H + 1) # 호수
if(first == 0):
first = H
last = last -1
print(first, end="")
print("{:02d}".format(last))