ACM 호텔

17 June 2019

문제 : https://www.acmicpc.net/problem/10250

이번은 호텔 방 번호의 규칙을 찾아 출력하는 문제를 풀어보도록 하겠습니다.

import java.util.Scanner;

public class Main {

    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);

        int size = sc.nextInt();

        for (int i = 0; i < size; i++) {
            int height = sc.nextInt();
            int width = sc.nextInt();
            int n = sc.nextInt();

            int roomNum;
            int floor;

            if (n % height != 0) {
                roomNum = n / height + 1;
                floor = n % height;
            } else {
                roomNum = n / height;
                floor = height;
            }


            System.out.print(floor);
            if (roomNum < 10) {
                System.out.print("0");
            }
            System.out.println(roomNum);
        }
    }
}
이 문제는 들어온 사람이 꼭대기층에 들어갈 때와 아닐 때로 구별해서 진행해보도록 하겠습니다.
들어온 사람이 꼭대기 층에 배정되는 경우는 height로 들어온 사람의 순서가 나누어서 나머지가 0인 경우입니다.
이 경우는 floor는 height와 같게 되고 roomNum는 n을 height로 나눈 값과 같습니다.
꼭대기층에 배정되지 않는 경우는 각각 n을 height로 나눈 나머지, 그리고 방이 배정되면 나눈 몫보다 1이 커지므로 1을 더해주면 roomNum가 됩니다.