728x90
코드 힌트
문제 해결 접근
- 주어진 문제는 특정 층과 방 수를 가진 호텔에서 손님을 배정하는 방 번호를 계산하는 것입니다.
- 각 손님은 특정 층의 특정 방에 배정되어야 하며, 방 번호는 층 수와 방 번호를 조합하여 생성됩니다.
층과 방 번호 계산하기
- 층(floor)은 손님 번호 n을 총 층수 h로 나눈 나머지에 1을 더하여 결정합니다.
- 방 번호(room)는 손님 번호 n을 총 층수 h로 나눈 몫에 1을 더하여 결정합니다.
문자열 포맷팅
- String.format("%d%02d", floor, room)을 사용하여 방 번호를 두 자리로 포맷합니다. floor는 그대로 두 자리 수로 표시하고, room은 두 자리 수로 표시되며, 부족한 자리는 0으로 채워집니다.
정답은 더보기 클릭
더보기
import java.io.*;
public class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
// 입력을 받기 위해 BufferedReader 사용
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 출력하기 위해 BufferedWriter 사용
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
// 테스트 케이스의 수를 읽어옴
int count = Integer.parseInt(br.readLine());
// 각 테스트 케이스를 처리
for (int i = 0; i < count; i++) {
// 층, 방 수, 손님 번호를 공백으로 구분하여 읽어옴
String[] arr = br.readLine().split(" ");
int h = Integer.parseInt(arr[0]); // 층 수
int w = Integer.parseInt(arr[1]); // 방 수
int n = Integer.parseInt(arr[2]); // n번째 손님
// 손님이 배정될 층을 계산 (1부터 시작하는 층 번호)
int floor = (n - 1) % h + 1;
// 손님이 배정될 방 번호를 계산 (1부터 시작하는 방 번호)
int room = (n - 1) / h + 1;
// 방 번호를 문자열 포맷팅하여 생성 (층수와 방번호를 두 자리로 포맷)
String roomNumber = String.format("%d%02d", floor, room);
// 결과를 출력
bw.write(roomNumber + "\n");
}
// 버퍼에 있는 내용을 출력하고 스트림을 닫음
bw.flush();
bw.close();
}
}
728x90
'백준' 카테고리의 다른 글
[백준] 별 찍기 - 3 (2440번) (0) | 2024.08.15 |
---|---|
[백준] 피보나치 수 5 (10870번) (0) | 2024.08.15 |
[백준] 팩토리얼 10872번 (0) | 2024.08.14 |
[백준] OX퀴즈 8958번 (0) | 2024.08.14 |
[백준] 더하기 사이클 1110번 (0) | 2024.08.14 |