문제
풀이
이 문제에서 손님들은 가까운 방을 선호하고 엘리베이터를 타는 경우는 신경쓰지 않는다고 되어있습니다. 만약 7층짜리 건물이 있다면 손님에게 방을 배정하게 될 경우 1호 라인, 즉 101~701호 까지 모든 방을 배정한 후에 2호 라인에 손님을 배정할 수 있습니다. 이런 방식으로 방을 배정하게 되면 풀이 방법은 다음과 같습니다.
ABC라는 세 자리수가 있을 경우 먼저 층마다 가장 가까운 1호부터 배정하여야 하므로 A가 호텔의 층 수 만큼 증가할 것입니다. 그 다음 A가 정해진 층수를 모두 채우게 되면 A는 다시 1이 되고 C에 해당하는 수가 1 증가하고, 다시 A가 층 수 만큼 증가하는 것이 반복됩니다. 또한 C가 9일 경우 증가하게 되면 C는 0이 되고, B는 1이 증가하게 됩니다. 이런식으로 n만큼 반복 후 최종적으로 나오게 되는 ABC의 값을 출력해주면 됩니다.
소스코드
#include<iostream>
using namespace std;
int main(){
int t,h,w,n,cnt=0;
int hcnt=0,one=1,ten=0;
cin >> t;
for (int i = 0; i < t; i++)
{
cin >> h >> w >> n ;
for (int i = 0; i < n; i++){
hcnt++;
if (hcnt > h)
{
one++;
hcnt=1;
if(one==10){one=0; ten++;}
}
} cout << hcnt << ten << one << endl;
hcnt=0; one=1;ten=0;
}
}
'Algorithm > Python, C++' 카테고리의 다른 글
백준 2839_설탕 배달[C++] (0) | 2022.02.20 |
---|---|
백준 2775_부녀회장이 될테야[C++] (0) | 2022.02.20 |
백준 1193_분수찾기[C++] (0) | 2022.01.25 |
백준 2869_달팽이는 올라가고 싶다[C++] (0) | 2022.01.24 |
백준 2292_벌집[C++] (0) | 2022.01.24 |
댓글