-
[백준] 10250 :: ACM 호텔알고리즘/BOJ(C++) 2020. 12. 19. 16:43반응형
문제 :
거창한 설명 다 지우고나면 결국, y값이 가장 작고, 그 다음으로 x값이 가장 작을 수 있는 남은 방을 손님에게 배정해라
풀이 :
예를 들어 6, 12, 10 이라면
101
201
301
401
501
601
>>>>>>
102
...
602
>>>>>>>
103
203
303
403
이런식으로 채워지게 된다. 결국 다음 호수 (1호 다음 2호) 층수만큼 한바퀴를 돌아와야한다는 뜻
그래서 층 + 호수를 구할 떄 층은 결국 층수(H) % N 이 되고, 호수는 몇바퀴 돌았는지니까 층수(H) / N + 1이 된다
이 때 층 % N이 0 인 경우 ( 딱 떨어지는 경우) 층수가 0이 아니라 제일 마지막 층수가 되고, 호수 또한 H/N이 되므로 이것만 예외처리 해주면 된다.
소스코드
더보기12345678910111213141516171819202122232425#include <iostream>#include <string>using namespace std;int t, h, w, n;int main() {cin >> t;int a, b;while (t--) {cin >> h >> w >> n;if (n % h == 0) {a = h;b = n / h;}else {a = n % h;b = (n / h) + 1;}string x = to_string(a);string y = "";if (b < 10) y = '0';y += to_string(b);cout << x + y << endl;}}cs 반응형'알고리즘 > BOJ(C++)' 카테고리의 다른 글
[백준] 1025 :: 제곱수 찾기 (2) 2020.12.21 [백준] 4458 :: 첫 글자를 대문자로 ( C++ 한 줄 입력받기, getline 함수 , cin.ignore()) (0) 2020.12.19 [백준] 2583 :: 영역 구하기 (0) 2020.12.19 [백준] 1024 :: 수열의 합 (0) 2020.07.27 [백준] 1052 :: 물병 (0) 2020.07.14