ACM 호텔
10250번: ACM 호텔
프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수
www.acmicpc.net
N번째 손님이 H, W 크기의 호텔에서 특정순서대로 방배정이 된다면
몇 호에 투숙하게 되는지 구하는 문제이다.
N 번째와 H(높이)를 이용하여 투숙할 층을 구한다.
나머지로 몇 층에 투숙하게 될지 알 수 있는데
만약 6층에 6번째 손님이 온다면
0층이 되므로 그때는 높이와 똑같이 6층으로 맞춰주는 조건을 추가해 준다.
int floor = n % h;
if(floor == 0) {
floor = h;
}
stringBuilder.append(floor);
호수는 n / h를 하여 나누어 올림을 해주는 방법으로 구할 수 있다.
나눌 때 double형이므로 (int)로 바꿔주면 .0을 없앨 수 있다.
n / h 가 10 미만일 때 0을 추가해 주어야 한다.
int room = (int)Math.ceil((double) n / h);
if(room < 10) {
stringBuilder.append("0").append(room).append("\n");
} else {
stringBuilder.append(room).append("\n");
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
StringBuilder stringBuilder = new StringBuilder();
int t = Integer.parseInt(scanner.nextLine());
for(int i = 0; i < t; i++) {
int h = scanner.nextInt();
int w = scanner.nextInt();
int n = scanner.nextInt();
int floor = n % h;
if(floor == 0) {
floor = h;
}
stringBuilder.append(floor);
int room = (int)Math.ceil((double) n / h);
if(room < 10) {
stringBuilder.append("0").append(room).append("\n");
} else {
stringBuilder.append(room).append("\n");
}
}
System.out.println(stringBuilder);
}
}
'알고리즘 탐구' 카테고리의 다른 글
알고리즘) 시간복잡도와 공간복잡도 (0) | 2023.07.28 |
---|---|
백준) (자바) 2750 수 정렬하기 1 (버블 정렬로 풀어보기) (0) | 2023.07.18 |
백준) (자바)4153 직각삼각형 (0) | 2023.05.04 |
백준) (자바)1085 직사각형에서 탈출 (0) | 2023.05.04 |
백준) (자바)11656 접미사 배열 (0) | 2023.05.03 |