[BOJ] 10250번 ACM 호텔 - JAVA

최영환·2022년 10월 3일
0

BaekJoon

목록 보기
22/87
post-thumbnail
## Java 풀이 시 유의사항 ##
클래스명은 Main 으로 작성해야함!

💡 문제


💬 입출력 예시

📌 풀이(소스코드)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int T = Integer.parseInt(br.readLine());
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < T; i++) {
            StringTokenizer st = new StringTokenizer(br.readLine(), " ");
            int h = Integer.parseInt(st.nextToken());
            Integer.parseInt(st.nextToken());
            int n = Integer.parseInt(st.nextToken());

            int floor, room;
            if (n % h == 0) {
                floor = h;
                room = n / h;
            }
            else {
                floor = n % h;
                room = n / h + 1;
            }
            sb.append(floor + String.format("%02d", room)).append("\n");
        }
        System.out.println(sb);
    }
}

📄 해설

  • 층 번호와 방 번호를 계산해낼 수 있으면 아주 쉽게 해결이 가능한 문제
  • floor(층번호) 는 기본적으로 N % H 로 계산하고, room(방번호) 는 기본적으로 N / H + 1 로 계산을 함
  • floor(층번호) 가 0 인 경우, 최대 층이 층 번호가 되고, 방 번호는 +1 을 해주지 않음
  • 이후 String.format 메소드를 사용하여 문자열을 포매팅 해줘도 되고, if - else 문에서 floor * 100 으로 연산을 해주어도 상관 없음
profile
조금 느릴게요~

0개의 댓글