본문 바로가기

알고리즘/백준

10250번 ACM 호텔

반응형






1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
 
using namespace std;
 
int main(){
    int T, H, W, N;
 
    cin >> T;
 
    while(T--) {
        cin >> H >> W >> N;
 
        int height = N % H;
        int floor;
 
        if(N % H != 0) floor = N / H + 1;
        else floor = N / H;
 
        if(height == 0) height = H;
        
        cout << height * 100 + floor << endl;
    }
}
cs

이 문제는 ICPC에 나온 문제이다.


문제를 이해하면 손님은 선호하는 방이 있다. 그 방은 엘레베이터에 가까운 방인데 손님들이 선호하기 때문에 먼저 온 손님은 그 방으로 안내해주게 된다. 따라서 각층에 있는 첫번째 방부터 그 이후는 똑같이 엘레베이터에 가까운 방을 배정해준다.


풀이 방법은 간단하다. 층수, 방의 개수, 몇번째 온 손님인지를 받는다. 그 이후 몇층에 머무를지는 간단하게 몇번째온 손님인지를 건물의 층수로 나누어서 나머지를 구하면 된다. 몇번째 방에 머무를지는 앞에서 나눈 몫을 이용하면 되는데 여기서 나머지가 0일 때와 아닐 때의 경우를 나눠주어야 한다. 그 이유는 나머지가 0 다음부터 방 번호가 바뀌기 때문이다.



'알고리즘 > 백준' 카테고리의 다른 글

1475번 방 번호  (0) 2018.10.10
2775번 부녀회장이 될테야  (0) 2018.10.10
1193번 분수찾기  (0) 2018.10.10
2292번 벌집  (0) 2018.10.10
1316번 그룹 단어 체커  (0) 2018.10.09