10250 - ACM호텔

10250 문제 링크

접근법

손님은 엘리베이터에 가까울수록, 아래층일수록 선호하기 때문에 xx1호가 전부 채워지고나서 xx2호가 채워지기 시작한다. 조금만 더 생각해보면 N%H가 층수가 되고 호수는 N/H+1 이 된다. 호수가 10이 넘지 않으면 0을 출력하고 호수를 출력하면 된다.

#include <iostream>

using namespace std;

int main()
{
    int Num;
    cin >> Num;

    for(int i =0; i<Num; i++)
    {
        int H,W,N, floor , room;
        cin >> H;   //floors
        cin >> W;   // rooms
        cin >> N;

        floor = N%H;
        room = N/H+1;

        if(floor == 0)
            floor = H;

        if(N%H == 0)
            room = room-1;



        cout << floor;


        if(room >= 10)
            cout << room<<endl;
        else
        {
            cout << "0" << room << endl;
        }

    }

}

결론

하나하나 채워가는 경우를 처음에 생각했지만 식으로 간단히 할 수 있는 문제여서 더 재밌었던것 같다.

업데이트: