Problem
https://www.acmicpc.net/problem/10250
Solution
code1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
t = int(input())
for i in range(t):
h,w,n = map(int, input().split())
count = 0
for i in range(1,w+1):
for j in range(1,h+1):
count+=1
if count==n:
break
if count==n:
break
print("%d%02d" %(j,i))
1번은 101호부터 차례대로 사람들을 배치해 나가면서 n번째 방이 되면 결과를 출력하는 방식이다.
code2
1
2
3
4
5
6
7
t = int(input())
for i in range(t):
h, w, n = map(int, input().split())
r = h if n%h==0 else n%h # 층수 구하기(나머지가 0일때는 4로)
b = (n-r)//h + 1 # 호수 구하기
print("%d%02d" %(r, b))
2번의 경우 몫과 나머지를 이용하여 풀었는데 전체 층수인 h로 나누었을때의 나머지를 이용해 해당 층수를 구했고 몫을 통해 정문으로부터의 거리인 호수를 구했다.
| 3 | 6 | 9 | 12 | |—|—|—|—-| | 2 | 5 | 8 | 11 | | 1 | 4 | 7 | 10 | 위의 예시를 보면 h와 w가 각각 3, 4인 상황에서 n=6의 층수와 호수를 구하는 방법은 h인 3으로 나누는 것이다. 그렇게 되면 r=3, b=2가 나오므로 302호가 나오게 된다.