백준 웰컴 키트

KIMYEONGJUN·2025년 2월 24일
post-thumbnail

문제

내가 생각했을때 문제에서 원하는부분

첫 줄에 참가자의 수 N이 주어집니다. (1 <= N <= 10^9)
둘째 줄에 티셔츠 사이즈별 신청자의 수 S, M, L, XL, XXL, XXXL이 공백으로 구분되어 주어집니다.
(0 <= S, M, XL, XXL, XXXL <= N; S + M + L + XL + XXL + XXXL = N)
셋째 줄에 정수 티셔츠와 펜의 묶음 수를 의미하는 정수 T와 P가 공백으로 구분되어 주어집니다.
(2 <= T, P <= 10^9)

첫 줄에 티셔츠를 T장씩 최소 몇 묶음 주문해야 하는지 출력하세요.
다음 줄에 펜을 P자루씩 최대 몇 묶음 주문할 수 있는지와, 그 때 펜을 한 자루씩 몇 개 주문하는지 구하세요.

내가 이 문제를 보고 생각해본 부분

BufferedReader를 사용하여 입력을 받는다.
참가자 수 N을 입력받고, 각 티셔츠 사이즈별 신청자 수(S, M, L, XL, XXL, XXXL)를 배열로 입력받는다.
티셔츠 묶음 수 T와 펜 묶음 수 P를 입력받는다.
티셔츠 묶음 수 계산:
각 사이즈별 신청자 수를 T로 나누어 올림을 적용하여 필요한 묶음 수를 계산해준다.
이때, (X + T - 1) / T 공식을 사용하여 올림 계산을 구현한다.
펜 묶음 수 및 남은 펜 계산:
총 참가자 수 N을 P로 나누어 묶음 수를 계산하고, 나머지를 통해 남은 펜 수를 계산한다.
결과 출력:
PrintWriter를 사용하여 결과를 한 번에 출력한다.
계산된 티셔츠 묶음 수와 펜의 묶음 수 및 남은 펜 수를 출력한다.

코드로 구현

package baekjoon.baekjoon_26;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;

// 백준 30802번 문제
public class Main942 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        PrintWriter pw = new PrintWriter(System.out);

        // 참가자 수 N
        long N = Long.parseLong(br.readLine());

        // 티셔츠 사이즈별 신청자 수 S, M, L, XL, XXL, XXXL
        String[] sizes = br.readLine().split(" ");
        long S = Long.parseLong(sizes[0]);
        long M = Long.parseLong(sizes[1]);
        long L = Long.parseLong(sizes[2]);
        long XL = Long.parseLong(sizes[3]);
        long XXL = Long.parseLong(sizes[4]);
        long XXXL = Long.parseLong(sizes[5]);

        // 티셔츠와 펜의 묶음 수 T, P
        String[] packSizes = br.readLine().split(" ");
        long T = Long.parseLong(packSizes[0]);
        long P = Long.parseLong(packSizes[1]);

        // 티셔츠 묶음 수 계산
        long tShirtBundles = (S + T - 1) / T + (M + T - 1) / T + (L + T - 1) / T +
                (XL + T - 1) / T + (XXL + T - 1) / T + (XXXL + T - 1) / T;

        // 펜 묶음 수 및 개수 계산
        long pensPerBundle = N / P;
        long remainingPens = N % P;

        // 결과 출력
        pw.println(tShirtBundles);
        pw.println(pensPerBundle + " " + remainingPens);

        pw.flush();
        pw.close();
        br.close();
    }
}

마무리

코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.

profile
Junior backend developer

0개의 댓글