목차
https://www.acmicpc.net/problem/10250
코드
#include <iostream>
using namespace std;
int main() {
int t;
int H, W, N;
cin >> t;
for(int i=0; i<t; i++){
cin >> H >> W >> N;
if(N % H){
cout << (N % H) * 100 + (N / H) + 1 << endl;
}
else{
cout << H * 100 + (N / H) << endl;
}
}
}
설명
W는 사실... 이 문제풀이에서 필요하지 않다.
잘못된 값이 주어졌을때의 처리가 있었다면 필요했을지도 모르겠지만 아무튼 그렇다.
N번째의 손님이 머물 층수와 호수를 아는 방법에 대해 생각해보자
층수는 N을 호텔의 높이인 H로 나눈 나머지이다.
호수는 N을 호텔의 높이인 H로 나눈 몫 + 1이다.
보통의 경우라면, 이렇게 된다.
하지만 H가 6인데 N이 6이라면 어떻게 될까?
601이 나와야 하는데
층수는 N을 호텔의 높이인 H로 나눈 나머지이다.
호수는 N을 호텔의 높이인 H로 나눈 몫 + 1이다.
이를 그대로 해 보면...
층수는 0이 되고, 호수는 2가된다.
이러한 경우는 N을 H로 나누었을때 나머지가 0인 경우에 해당하기 때문에
나머지가 0이라면, 층수는 H로 하고, 호수는 N을 호텔의 높이인 H로 나눈 몫으로 해 주면 된다.
'공부 > 백준(C++) - 2022~' 카테고리의 다른 글
백준 2839번: 설탕 배달[C++] (0) | 2022.01.14 |
---|---|
백준 2775번: 부녀회장이 될테야 [C++] (0) | 2022.01.13 |
백준 2869번: 달팽이는 올라가고 싶다 [C++] (0) | 2022.01.13 |
백준 1193번: 분수찾기 [C++] (0) | 2022.01.12 |
백준 2292번: 벌집 [C++] (0) | 2022.01.12 |