곽로그

[백준 10250] ACM호텔 본문

알고리즘/백준

[백준 10250] ACM호텔

일도이동 2019. 5. 7. 22:52
반응형

 

 

10250번: ACM 호텔

문제 ACM 호텔 매니저 지우는 손님이 도착하는 대로 빈 방을 배정하고 있다. 고객 설문조사에 따르면 손님들은 호텔 정문으로부터 걸어서 가장 짧은 거리에 있는 방을 선호한다고 한다. 여러분은 지우를 도와 줄 프로그램을 작성하고자 한다. 즉 설문조사 결과 대로 호텔 정문으로부터 걷는 거리가 가장 짧도록 방을 배정하는 프로그램을 작성하고자 한다. 문제를 단순화하기 위해서 호텔은 직사각형 모양이라고 가정하자. 각 층에 W 개의 방이 있는 H 층 건물이라고 가정

www.acmicpc.net

 

문제접근

H=6,W=12 케이스를 설정하고 표를 그려 하나씩 그려나갔다. 그러면 규칙이 보이는데, 층은 N을 H로 나눈 나머지가 되고 호수는 N를 H로 나눈 몫에 1을 더하면 된다.

 

 

근데 여기서 H=1인경우와 N%H=0인경우에 대해서 처리를 해줘야 한다. 따라서 경우를 H=1인 경우, N%H=0인경우 그 외의 경우 3가지에 대해서 층, 호수를 구하면 된다. 

 

package gogogo;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner in=new Scanner(System.in);
		int T=in.nextInt();
		for(int testCase=0;testCase<T;testCase++) {
			int H=in.nextInt();
			int W=in.nextInt();
			int N=in.nextInt();
			
			int floor;
			int numberInFloor;
			
			if(H==1) {
				floor=1;
				numberInFloor=N;
			}
			else if(N%H==0) {
				floor=H;
				numberInFloor=(N/H); 
			}
			else {
				floor=N%H;
				numberInFloor=(N/H)+1; 
			}
			
			
			if(numberInFloor<10) {
				System.out.println(floor+"0"+numberInFloor);
			}
			else {
				System.out.println(floor+""+numberInFloor);
			}
			
			
		}
	}
}

 

* 이 문제에 대한 접근은 맞았지만, 예외의 경우를 생각하는데 오래걸렸다. 1층인경우와 N이 H로 나누어 떨어지는 경우에 대한 반례를 생각하는 거!. 

 

 문제를 풀 때 반례를 생각해내는 능력이 있어야 할 듯

반응형

'알고리즘 > 백준' 카테고리의 다른 글

[백준 1011] Fly me to the Alpha Centauri  (0) 2019.05.15
[백준 1475] 방 번호  (0) 2019.05.13
[백준 2839] 설탕배달  (0) 2019.05.03
[백준 1977] 완전제곱수  (0) 2019.05.03
[백준 1193] 분수찾기  (0) 2019.04.26
Comments