[Java] 백준 10250번: ACM 호텔

U·2023년 3월 19일

백준

목록 보기
30/116

💻 문제


일단 이해하자🤔

  • 문제를 요약하자면, 온 손님 순서대로 101, 201, 301 .. h01(이때 h는 호텔 층 수), 102, 202 .. h02 .. hw(이때 w는 각 층의 방 수) 순으로 배정하란 뜻이다.
  • 이 문제에서 w는 중요하지 않다고 생각했다. 왜냐하면 어차피 예제는 w에 벗어나지 않는 값을 주어줄 것이고 중요한건 hn의 관계다.
  • 6, 6, 30처럼 nh로 나누어 떨어질때 yy = h, xx = n / h다.
  • 그러나 6, 12, 10처럼 nh로 나누어 떨어지지 않을때 yy = n % h이며 xx = n / h + 1이다.

👀 풀이

import java.io.*;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader bfr = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bfw = new BufferedWriter(new OutputStreamWriter(System.out));

        int T = Integer.parseInt(bfr.readLine());

        for (int i = 0; i < T; i++) {
            String str = bfr.readLine();
            StringTokenizer st = new StringTokenizer(str, " ");

            int h = Integer.parseInt(st.nextToken());
            int w = Integer.parseInt(st.nextToken());
            int n = Integer.parseInt(st.nextToken());
            int yy, xx;

            if(n % h != 0) {
                yy = n % h;
                xx = n / h + 1;
            }
            else {
                yy = h;
                xx = n / h;
            }

            bfw.write(yy * 100 + xx + "\n");
        }

        bfr.close();
        bfw.flush();
        bfw.close();
    }
}

💡 결과


아쉬웠던 점••

  • 원래는 다른 방식으로 문제를 풀었으나 반례가 계속 나와 문제가 복잡해져서 다른 방법으로 바꾸었다. 다른 사람의 풀이를 참고하였고 문제를 정확하게 이해하고 넘어가지 못한 것 같아 아쉽다.
profile
백엔드 개발자 연습생

0개의 댓글