이 문제는 H(호텔의 층 수), W(각 층의 방 수), N(몇 번째 손님)를 입력받아 호텔 정문으로부터 걸어서 가장 짧은 거리에 있는 방을 출력하는 문제이다.
손님은 엘레베이터 타는것을 신경쓰지 않기 때문에 102호 보다 601호를 선호한다고 합니다.
이 문제는 규칙을 찾을것도 없이 낮은 층 1호부터 순서대로 사람을 채워주면 되는 간단한 문제입니다.
(문제를 풀어보니 W는 쓸곳이 없었습니다...)
우선 N번째 손님이 묵을 층을 구해줘야 합니다.
층 수는 N / H 가 0이 0이 아닐 경우 N / H 를 한 나머지가 층 수가 됩니다. ( 1호 부터 채우기 때문에 N % H = 손님이 묵을 층 수)
int h = ( N % H == 0) ? H : N % H;
그 다음 손님이 묵을 호는 N%H == 0 이 아니라면 N / H + 1, 0이라면 N / H 가 됩니다.
( N%H == 0일 경우 층의 마지막이기 때문에 N / H, 0이 아닐 경우 1호 부터 시작하기 때문에 + 1을 해주는 것입니다.)
int w = ( N % H == 0) ? N/H : N/H+1;
전체 소스
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int T = s.nextInt();
for(int i=0;i<T;i++) {
int H = s.nextInt(); // 호텔의 층 수
int W = s.nextInt(); // 각 층의 방 수
int N = s.nextInt(); // 몇 번째 손님
int h = (N%H == 0) ? H : N%H;
int w = (N%H == 0) ? N/H : N/H+1;
if (w/10 == 0) System.out.println(h+"0"+w);
else System.out.println(h+""+w);
}
}
}
'프로그래밍 > 백준알고리즘' 카테고리의 다른 글
백준 1212번 자바 문제풀이 - 8진수 2진수 풀이 (0) | 2022.03.30 |
---|---|
백준 알고리즘 1026번 풀이 - 보물 (0) | 2019.09.25 |
백준 알고리즘 2750번 풀이 - 수 정렬하기[버블정렬] (0) | 2019.09.25 |
백준 알고리즘 1003번 풀이 - 피보나치 함수 (0) | 2019.08.13 |
백준 알고리즘 2869번 문제 풀이 - 달팽이는 올라가고 싶다 (0) | 2019.08.13 |