[백준(BOJ)] ACM 호텔(10250번)_C++

2023. 9. 4. 17:43Problem Solving/Math

728x90
반응형
SMALL

간단한 연산 문제다.

방 번호는 높이 H에 종속적이므로 N과 H를 가지고 잘 요리하면 쉽게 방 번호를 결정할 수 있다.

 

나는 층과 엘리베이터로부터의 거리를 각각 구했다.

층의 경우 N%H 로 쉽게 구할 수 있다.

이 중 for문을 돌린다고 생각해보면 최고층을 찍고, 다시 1층부터 시작한다.

단, N%H==0 이면 이 때는 층은 H이다.

 

엘리베이터로부터의 거리는 N/H이다.

최고층을 찍을 때마다 옆으로 옮기기 떄문이다.

단, N%H!=0 이면 이 때는 엘리베이터로부터의 거리는 N/H + 1이다.

시작 거리가 1이기 떄문이다.

 

 


정답 코드

#include <iostream>

using namespace std;

int T, H, W, N;

int main(){
    cin.tie(NULL);
    cout.tie(NULL);
    ios_base::sync_with_stdio(false);

    //input
    cin >> T;

    //test data
    while (T--){
        cin >> H >> W >> N;

        int Y, X;

        //calculate floor
        Y = N % H;
        if (Y == 0)
            Y = H;

        //calculate distance from elevator
        X = N / H;
        if (N % H != 0)
            X++;

        //output
        cout << Y;
        if (X < 10)
            cout << "0";
        cout << X << "\n";
    }
}
728x90
반응형
LIST