💻 문제



일단 이해하자🤔
- 문제를 요약하자면, 온 손님 순서대로 101, 201, 301 .. h01(이때 h는 호텔 층 수), 102, 202 .. h02 .. hw(이때 w는 각 층의 방 수) 순으로 배정하란 뜻이다.
- 이 문제에서
w는 중요하지 않다고 생각했다. 왜냐하면 어차피 예제는 w에 벗어나지 않는 값을 주어줄 것이고 중요한건 h와 n의 관계다.
6, 6, 30처럼 n이 h로 나누어 떨어질때 yy = h, xx = n / h다.
- 그러나
6, 12, 10처럼 n이 h로 나누어 떨어지지 않을때 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();
}
}
💡 결과

아쉬웠던 점••
- 원래는 다른 방식으로 문제를 풀었으나 반례가 계속 나와 문제가 복잡해져서 다른 방법으로 바꾸었다. 다른 사람의 풀이를 참고하였고 문제를 정확하게 이해하고 넘어가지 못한 것 같아 아쉽다.