본문 바로가기

프로그래밍/PS

[C++] 백준 10250번: ACM 호텔

반응형

10250번: ACM 호텔

#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