BOJ 10250번 ACM호텔 문제 자바(java) 풀이
문제정리
- 호텔 정문에서 부터 걸어 가장 짧은 거리에 있는 방을 선호
- 건물은 W개의 방이 있는 H층 건물
- 엘리베이터는 가장 왼쪽에 있다.
- 호텔 정문은 일층 엘리베이터 바로 앞에 있다. (정문에서 엘리베이터까지 거리는 무시)
- 모든 인접한 두 방사이의 거리는 1
- 방 번호는 YXX, YYXX 형태 (Y, YY: 층수 / X, XX: 엘리베이터 쪽에서 세었을 때의 번호)
- 걷는 거리가 같다면 아래층을 선호한다.
- N번째로 도착한 손님에게 배정할 방을 계산해라
문제풀이
호수가 작고 층이 낮은 것 부터 배정한다.
N 과 H를 나눈 나머지에 따라 출력을 다르게 합니다.
다음과 같은 순서로 방을 배정해야 합니다.
101, 201, 301,...,H01
102, 202, 302,...,H02
...
10W, 20W, 30W, ..., H0W
- N % H == 0
호 수는 N을 H로 나누었을 때의 몫이 됩니다.
층 수는 H층이 됩니다.
층 수에 100을 곱해서 호수를 더해줍니다.
- N % H != 0
호수는 N을 H로 나눈 몫에 1을 더한 값이 됩니다.
층 수는 N을 H로 나눈 나머지가 됩니다.
층 수에 100을 곱해서 호수를 더해줍니다.
ACM 호텔 자바(java) 코드