JuSeok

10250번

문제

  • 호텔의 층 수 H, 각 층의 방 수 W, 몇 번째 손님 N을 입력받아 N번째 손님에게 배정되어야 하는 방 번호을 출력하는 문제
  • 손님은 정문 엘레베이터와 가까운 방을 우선으로 선호하며 엘레베이터로 이동하는 거리는 신경쓰지 않음
  • 즉, 102호 보다 301호를 선호
문제 해결 순서
  1. T를 입력받아 몇개의 테스트 데이터를 입력받을지 정함
  2. 손님을 배정하는 순서는 층 -> 다음 호수의 방 순서 (3층일 경우, 101, 201, 301, 102, 202, 302...)
  3. N % H로 몇 번째 층에 배정되어야 하는지 구함. 만약 '0'이면 꼭대기 층이라는 뜻이므로 H로 초기화
  4. N / H + 1로 몇 번째 순서에 있는 방인지 구함. 첫 시작을 101호로 시작하기 때문에 1을 더해줌. 만약 꼭대기 층이면 다음 방으로 넘어가기 전이므로 N / H로 초기화
  5. 마지막으로 floor에 100을 곱하고 room을 더해줘서 출력 `java import java.util.Scanner; class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int T = sc.nextInt(); for(int i = 0; i< T; i++) { int H = sc.nextInt(); int W = sc.nextInt(); int N = sc.nextInt(); int room = (N/H) + 1; int floor = N%H;

    // 꼭대기 층일때 if(N%H==0) { room = N/H; floor = H; } System.out.println(floor*100+room); } } }

    
    

    Tags