백준 특식 배부

KIMYEONGJUN·2025년 2월 6일
post-thumbnail

문제

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

첫 번째 줄에 주문한 각 종류의 치킨 마릿수 N이 주어진다. (1 <= N <= 1000)
두 번째 줄에 후라이드 치킨을 가장 선호하는 병사의 수 A, 간장치킨을 가장 선호하는 병사의 수 B, 양념치킨을 가장 선호하는 병사의 수 C가 공백으로 구분되어 주어진다. (1 <= A, B, C <= 3000)

본인이 가장 선호하는 종류의 치킨을 받을 수 있는 최대 인원수를 출력한다.

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

입력 처리: BufferedReader를 사용하여 입력을 효율적으로 처리한다.
변수 선언: 주문한 치킨 수 N과 각 치킨을 선호하는 병사의 수 A, B, C를 읽어온다.
치킨 배부 계산:
각 종류의 치킨을 받을 수 있는 인원 수는 해당 종류를 선호하는 인원 수와 주문한 마릿수 중 최소값이다.
선호하는 치킨을 받을 수 있는 최대 인원 수를 계산한다.
결과 출력: 총 인원 수가 3 * N을 넘지 않도록 제한하여 출력한다.

코드로 구현

package baekjoon.baekjoon_26;

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

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

        // 첫 번째 줄에서 주문한 각 종류의 치킨 마릿수 N을 읽어옵니다.
        int N = Integer.parseInt(br.readLine());

        // 두 번째 줄에서 각 종류의 치킨을 가장 선호하는 병사의 수 A, B, C를 읽어옵니다.
        String[] preferences = br.readLine().split(" ");
        int A = Integer.parseInt(preferences[0]);
        int B = Integer.parseInt(preferences[1]);
        int C = Integer.parseInt(preferences[2]);

        // 각 종류의 치킨을 받을 수 있는 최대 인원수를 계산합니다.
        // A, B, C 중 각 치킨의 수(N)와 선호하는 인원 수의 최소값을 취합니다.
        int friedChicken = Math.min(A, N);
        int soyChicken = Math.min(B, N);
        int spicyChicken = Math.min(C, N);

        // 선호하는 종류의 치킨을 받을 수 있는 인원수의 최대값을 계산합니다.
        int maxPreferred = friedChicken + soyChicken + spicyChicken;

        // 총 인원 수가 N의 세 배를 넘지 않도록 합니다.
        int total = Math.min(maxPreferred, 3 * N);

        // 결과 출력
        System.out.println(total);
        br.close();
    }
}

마무리

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

profile
Junior backend developer

0개의 댓글