알고리즘
[백준알고리즘] 10250 - ACM 호텔
DevBee
2021. 5. 27. 06:30
https://www.acmicpc.net/problem/10250
10250번: ACM 호텔
프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수
www.acmicpc.net
문제는 위와 같으며 거리가 짧은 순으로 방을 채우기 때문에 10번째 손님은 402호에 머물게 됩니다.
따라서 N번째 손님 방의 층수와 호수는 각각 아래와 같은 식을 통해 계산할 수 있습니다.
층수 = N % H (But, 건물의 층수와 손님 번호가 같은 경우에는 가장 높은 층수에 머물게 됩니다.)
호수 = (N / H) + 1 (But, 건물의 층수와 손님 번호가 같은 경우에는 + 1 하지 않은 호수에 머물게 됩니다.)
자바 코드는 다음과 같습니다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int t = Integer.parseInt(br.readLine());
for (int i = 0; i < t; i++) {
String[] input = br.readLine().split(" ");
int h = Integer.parseInt(input[0]);
int w = Integer.parseInt(input[1]);
int n = Integer.parseInt(input[2]);
int floor = n % h == 0 ? h : n % h;
int roomNum = n % h == 0 ? n / h : (n / h) + 1;
StringBuilder sb = new StringBuilder();
sb.append(floor);
if (roomNum < 10) {
sb.append("0").append(roomNum);
} else {
sb.append(roomNum);
}
System.out.println(sb);
}
}
}