Chef.Yeon
Code Cook
Chef.Yeon
전체 방문자
오늘
어제
  • 분류 전체보기 (230)
    • 게임 개발 (1)
      • Unity (1)
    • Android (27)
      • Kotlin (19)
      • 우아한테크코스 5기 (4)
    • Language (11)
      • 파이썬 (3)
      • Java (7)
    • DB (2)
      • SQL (16)
    • Spring (25)
    • 코딩테스트 (56)
    • Git (1)
    • TIL (85)
    • DevOps (6)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • SQL
  • webflux
  • 코딩테스트
  • ec2
  • rsocket
  • spring
  • 프로그래머스
  • elasticsearch
  • java
  • Android
  • til
  • kotlin
  • 코틀린
  • MariaDB
  • 코틀린 인 액션
  • 레포지토리
  • Docker
  • 안드로이드
  • Wil
  • 에라토스테네스의 체
  • 프리코스
  • 파이썬
  • 백준
  • 우아한테크코스
  • 다이나믹 프로그래밍
  • enum
  • 문자열
  • kibana
  • grafana
  • 내림차순

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Chef.Yeon

Code Cook

코딩테스트

[백준/Java] ACM 호텔

2023. 3. 7. 00:39

문제


입력

프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수를 포함하고 있으며 각각 호텔의 층 수, 각 층의 방 수, 몇 번째 손님인지를 나타낸다(1 ≤ H, W ≤ 99, 1 ≤ N ≤ H × W). 


출력

프로그램은 표준 출력에 출력한다. 각 테스트 데이터마다 정확히 한 행을 출력하는데, 내용은 N 번째 손님에게 배정되어야 하는 방 번호를 출력한다.


내 풀이

n을 h로 나눈 몫과 나머지를 통해 구할 수 있습니다.

n / h 몫이 방 호수, n % h 가 층 수가 됩니다. h = 6, w = 6, n = 10 일 때, 그림을 그려보면 손님은 402호를 배정받아야 합니다.

n / h = 1 이고 n % h = 4 입니다. 따라서 floor = n % h, room = n / h +1 이 됩니다.

 

여기서 추가로 n % h == 0인 경우도 고려해야 합니다.

h = 4, w = 10, n = 8 일 때, 실제 손님이 배정되는 방은 402호입니다.

n / h = 2 이고 n % h = 0 입니다. 따라서 floor = h, room = n / h 가 됩니다.

import java.io.*;
import java.util.*;

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        int size = Integer.parseInt(br.readLine());
        for (int i = 0; i < size; i++) {
            StringTokenizer tk = new StringTokenizer(br.readLine());
            int h = Integer.parseInt(tk.nextToken()); //층수
            int w = Integer.parseInt(tk.nextToken()); //방수
            int n = Integer.parseInt(tk.nextToken()); //몇 번째 손님

            int floor;
            int room;
            if (n % h == 0) {
                floor = h;
                room = n / h;
            } else {
                floor = n % h;
                room = n / h + 1;
            }
            floor = floor * 100;
            bw.write(floor + room + "\n");
        }
        bw.flush();
        bw.close();
        br.close();
    }
}
728x90

'코딩테스트' 카테고리의 다른 글

[백준/Java] Fly me to the Alpha Centauri  (0) 2023.03.07
[백준/Java] 소수 구하기  (0) 2023.03.07
[백준/Java] 달팽이는 올라가고 싶다  (0) 2023.03.07
[백준/Java] 베르트랑 공준  (0) 2023.03.06
[백준/Java] 설탕 배달  (0) 2023.03.06
    '코딩테스트' 카테고리의 다른 글
    • [백준/Java] Fly me to the Alpha Centauri
    • [백준/Java] 소수 구하기
    • [백준/Java] 달팽이는 올라가고 싶다
    • [백준/Java] 베르트랑 공준
    Chef.Yeon
    Chef.Yeon
    보기 좋고 깔끔한 코드를 요리하기 위해 노력하고 있습니다.

    티스토리툴바