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

꿈별·2022년 12월 2일
0

문제풀이

목록 보기
13/52

문제


코드

#include <iostream>
using namespace std;

int main(void) {
	int T, H, W, N; //테스트케이스, 층, 방, 손님수
	int result = 0;

	cin >> T;
	while (T--) 
	{
		cin >> H >> W >> N;
		if (N % H == 0)
			cout << 100 * H + (N/H) << endl;
		else
			cout << 100 * (N % H) + (N / H + 1) << endl;
	}
}

풀이

  • 위 그림처럼 층별 1번방, 2번방, 3번방...의 순서대로 객실을 채워 올라간다.
  • 층수100 * (N%H), 방 순서N/H+1이며
    둘을 더해 방 호수를 계산한다.
    -> 방 호수 : 100 * (N % H) + (N / H + 1)
  • 단, 꼭대기 층(N&H==0)인 경우, 잘못된 호수가 계산된다.
    -> ex) H:3, W:2, N:6 --> 302(호)
    => 100 * (6 % 3) + (6 / 3 + 1) = 100 * 0 + 3 = 3(호)

👉 따라서 꼭대기 층일 경우에는
: 100 * H + (N/H)

0개의 댓글