반응형
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 |