[C++] 백준 30802번 웰컴 키트

xyzw·2025년 8월 16일
0

algorithm

목록 보기
62/97

https://www.acmicpc.net/problem/30802

풀이

티셔츠 TT장씩 최소 tmin 묶음, 펜 PP자루씩 최대 pd 묶음, 한자루씩 pr개를 주문해야 한다고 하자.

tmin 계산

S,M,L,XL,XXL,XXXLS, M, L, XL, XXL, XXXL 각각 신청자수를 TT로 나누었을 때,
그 몫을 소수점 첫째 자리에서 올림하여
모두 더한 값이다.

문제의 예제에 따르면
S,M,L,XL,XXL,XXXLS, M, L, XL, XXL, XXXL은 각각 3, 1, 4, 1, 5, 9,
TT는 5 이므로

3/5 = 0.6 -> 1
1/5 = 0.2 -> 1
4/5 = 0.8 -> 1
1/5 = 0.2 -> 1
5/5 = 1   -> 1
9/5 = 1.8 -> 2

tmin은 7이다.

pd, pr 계산

pd는 NNPP로 나눈 몫이고, pr은 그 나머지이다.

코드

#include <iostream>
#include <cmath>

using namespace std;

int main()
{
    int N, T, P;
    int tsize[6];
    int tmin = 0, pd = 0, pr = 0;
    
    cin >> N;
    for(int i=0; i<6; i++) cin >> tsize[i];
    cin >> T >> P;
    
    for(int i=0; i<6; i++) {
        tmin += ceil((double)tsize[i]/T);
    }
    pd = N / P;
    pr = N % P;
    
    cout << tmin << "\n" << pd << " " << pr;

    return 0;
}

0개의 댓글