Acm_Hotel 문제 풀기
2018, May 06
백준에 있는 Acm_Hotel 풀어보았다. 문제링크
층이 x 일 경우 (x * n )번째 손님은 (x * n) / x 번째 방에 숙박하게 된다.
(x * n ) + 1번째 손님은 ((x*n)+1 / x ) +1 번째 방에 숙박하게 된다.
n 번째 손님은 n % (x +1) 층에 숙박한다.
void acm_hotel(int h, int w, int n)
{
int mulStd = 1;
// 몇 번째 방인지 구한다.
// x * 건물높이 가 n보다 작음을 만족하는 최대의 x를 찾으면 된다.
while (n > mulStd*h)
{
mulStd++;
}
int idxRoom = mulStd;
// 층수를 구한다.
int hOfRoom = n % h;
if (hOfRoom == 0)
hOfRoom = h;
if (idxRoom >= 10)
printf("%d%d", hOfRoom, idxRoom);
else
printf("%d0%d", hOfRoom, idxRoom);
}