-
백준 10250번 : ACM 호텔구현(Implementation) 2018. 6. 20. 11:56반응형
https://www.acmicpc.net/problem/10250
1. 문제
방 번호는 YXX 나 YYXX 형태인데 여기서 Y 나 YY 는 층 수를 나타내고 XX 는 엘리베이터에서부터 세었을 때의 번호를 나타낸다.
즉, 그림 1 에서 빗금으로 표시한 방은 305 호가 된다. 손님은 엘리베이터를 타고 이동하는 거리는 신경 쓰지 않는다.
다만 걷는 거리가 같을 때에는 아래층의 방을 더 선호한다.
예를 들면 102 호 방보다는 301 호 방을 더 선호하는데, 102 호는 거리 2 만큼 걸어야 하지만 301 호는 거리 1 만큼만 걸으면 되기 때문이다. 같은 이유로 102 호보다 2101 호를 더 선호한다. 여러분이 작성할 프로그램은 초기에 모든 방이 비어있다고 가정하에 이 정책에 따라 N 번째로 도착한 손님에게 배정될 방 번호를 계산하는 프로그램이다.
첫 번째 손님은 101 호, 두 번째 손님은 201 호 등과 같이 배정한다. 그림 1 의 경우를 예로 들면, H = 6이므로 10 번째 손님은 402 호에 배정해야 한다.
2. 알고리즘
세번 째 입력 N 은 N 번 째 손님을 의미 한다.
1 번째 손님 - 101
2 번째 손님 - 201
3 번째 손님 - 301
4 번째 손님 - 401
5 번째 손님 - 501
6 번째 손님 - 601
--------------------- H 가 6 임으로 다음 칸으로 넘어간다.
7 번째 손님 - 102
8 번째 손님 - 202
9 번째 손님 - 302
10 번째 손님 - 403
호수 계산 - 10-1(도착한 손님) % 호텔의 높이(H) + 1
층수 계산 - 10-1(도착한 손님) / 호텔의 높이(H) + 1
3. 코드
1234567891011121314151617181920212223242526#include <iostream>#include <sstream>#include <string>#include <algorithm>#include <functional>#include <vector>#include <list>#include <queue>#include <map>#include <set>#include <stack>using namespace std;int main() {std::ios::sync_with_stdio(false); cin.tie(0);int n; cin >> n;while(n--) {int a, b, c;cin >> a >> b >> c; c--;printf("%d%02d\n", c%a+1, c/a+1);}return 0;}cs 반응형'구현(Implementation)' 카테고리의 다른 글
Codeforces Round #488 by NEAR (Div. 2) - A. Fingerprints (0) 2018.06.20 백준 1225번: 이상한 곱셈 (0) 2018.06.20 백준 1011번 : Fly me to the Alpha Centauri (0) 2018.06.20 Codeforces Round #486 (Div. 3) - A. Diverse Team (0) 2018.06.19 백준 1453번 : 피시방 알바 (0) 2018.06.18