반응형
#include <cstdio>
int main() {
int T, H, W, N;
scanf("%d", &T);
while (T--) {
scanf("%d %d %d", &H, &W, &N);
for (int w = 1; w <= W; w++) {
for (int h = 1; h <= H; h++, N--) {
if (N == 1) {
printf("%d%02d\n", h, w);
goto NEXT_CASE;
}
}
}
NEXT_CASE:;
}
return 0;
}
이 문제의 연산량은 많지 않다. 최대 H * W인데, 1 ≤ H, W ≤ 99이므로 9801번이 최대.
내가 푼 방법은 N번째가 될 떄까지 방을 부여했다. 어자피 연산량이 많지 않으니까.
층별 우선 배정해가며 호수를 늘려가는 방식으로, for문을 구현했다.
매 반복마다 N을 줄게 하여 N이 1이 되면 그 방이 N번째로 배정받는 방이다.
해당 방 번호를 출력하고 goto문을 이용해 탈출한다.
여기서 처음에는
printf("%d%2d\n", h, w);
위에 처럼 했더니,
4 2
위와 같은 출력이 나왔다. 그래서 알아보니 %02d와 같이 0을 서식문자 사이에 끼워넣으면 부족한 칸 만큼 0이 채워진다고 한다.
이번 문제는 어렵지 않게 금방 해결할 수 있었다.
반응형
'프로그래밍 > PS' 카테고리의 다른 글
[C++] 백준 10989번: 수 정렬하기3 (0) | 2020.09.21 |
---|---|
[C++] 백준 2798번: 블랙잭 (0) | 2020.09.20 |
[C++] 백준 1929번: 소수 구하기 (0) | 2020.09.20 |
[C++] 백준 9012번: 괄호 (0) | 2020.09.19 |
[C++] 백준 2839번 : 설탕배달 (0) | 2020.09.19 |