문제이해
위와 같은 방식으로 방에 손님이 들어옵니다.
먼저 층을 구하려면 N%H를 했습니다.
들어온 값을 층으로 나누면 나머지값은 가로 값이 됩니다.
가로값은 곳 층입니다.
여기서 들어온 값이 층과 같다면 (= N%H ==0)이라면
층은 h가 됩니다.
세로값 즉, 동수를 구하려면 N//H를 해야합니다.
세로값은 맨 꼭대기 층을 제외하고 N//H -1 값입니다.
맨 꼭대기층은 N//H값이 나옵니다.
예를 들어) N = 11인 값이 들어오면
N//H = 1.83.. 으로 절대 2값이 넘지 못합니다.
하지만 N = 11인 손님은 2동에 들어가야 하죠
그래서 +1를 합니다.
하지만 N = 12인 값이 들어오면
N//H = 2가 되므로 정확하게 602호에 들어가게 됩니다.
꼭대기 층만 특별하게 if문을 주면 되었습니다.
코드
t = int(input())
for i in range(t):
h,w,n = map(int,input().split())
#h = 세로, w = 가로, n = 몇 번째 손님
if(n % h):
floor = n % h
else:
floor = h
if(n % h):
room = (n//h) + 1
else:
room = (n//h)
if(room >= 10 ):
print("%d%d" % (floor, room))
else:
print("%d%02d" % (floor, room))
python 포메팅으로 만약 방의 동수가 2자리가 넘어가면
그냥 출력하면 되고
1자리이면 앞에 0을 붙혀서 출력하도록 했습니다.
728x90
'알고리즘 > 백준알고리즘' 카테고리의 다른 글
[백준 알고리즘/Python3] 2839 설탕배달 (0) | 2021.09.27 |
---|---|
[백준 알고리즘/Python3] 2775 부녀회장이 될테야 (0) | 2021.09.07 |
[백준 알고리즘/Python3] 2869 달팽이는 올라가고 싶다. (0) | 2021.09.05 |
[백준 알고리즘/Python3] 1193 분수찾기 (0) | 2021.09.04 |
[백준 알고리즘/Python3] 2292 벌집 (0) | 2021.09.03 |