본문 바로가기
프로그램/C언어 1000제

C언어 173제] solved.ac class2 웰컴 키트

by 건티 2024. 9. 18.
728x90

출처 : 반크_세계유산 경복궁

 

문제]

2024년 2월 3일 개최 예정인 온사이트 그랜드 아레나에서는 참가자들에게 티셔츠 한 장과 펜 한 자루가 포함된 웰컴 키트를 나눠줄 예정입니다. 키트를 제작하는 업체는 다음과 같은 조건으로만 주문이 가능합니다.

티셔츠는 S, M, L, XL, XXL, 그리고 XXXL의 6가지 사이즈가 있습니다. 티셔츠는 같은 사이즈의 T장 묶음으로만 주문할 수 있습니다.
펜은 한 종류로, P자루씩 묶음으로 주문하거나 한 자루씩 주문할 수 있습니다.
총 N명의 참가자 중 S, M, L, XL, XXL, XXXL 사이즈의 티셔츠를 신청한 사람은 각각 S, M, L, XL, XXL, XXXL명입니다. 티셔츠는 남아도 되지만 부족해서는 안 되고 신청한 사이즈대로 나눠주어야 합니다. 펜은 남거 부족해서는 안 되고 정확히 참가자 수만큼 준비되어야 합니다.

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

입력
첫 줄에 참가자의 수 N이 주어집니다. (1 <= N <= 10^9)

둘째 줄에 티셔츠 사이즈별 신청자의 수 S, M, L, XL, XXL, XXXL이 공백으로 구분되어 주어집니다.

(0 <= S, M, L, XL, XXL, XXXL <= N; S + M + L + XL + XXL + XXXL = N) 

셋째 줄에 정수 티셔츠와 펜의 묶음 수를 의미하는 정수 T와 P가 공백으로 구분되어 주어집니다.

(2 <= T, P <= 10^9)

출력
첫 줄에 티셔츠를 T장씩 최소 몇 묶음 주문해야 하는지 출력하세요.

다음 줄에 펜을 P자루씩 최대 몇 묶음 주문할 수 있는지와, 그 때 펜을 한 자루씩 몇 개 주문하는지 구하세요.

예제 입력 1 
23
3 1 4 1 5 9
5 7
예제 출력 1 
7
3 2
S, M, L, XL, XXL 사이즈 티셔츠를 1묶음씩 구매하고 XXXL 사이즈 티셔츠를 2묶음 구매합니다.

출처 : 백준_30802번

 

참고풀이]

#include <stdio.h>

int main(){
   int N;//참가자 인원수를 입력받는다. 
   int Size[6]={0};//티 사이즈별 주문인원수를 입력할 변수 
   int T,P;//티와 펜 묶음 수를 입력받는다. 
   int i;//인덱스 또는 반복변수
   int S;//티 주문 합변수 
   int count_T;//주문할 티의 묶음수 변수 
 
   scanf("%d",&N);
   if(N>=1 && N<=1000000000)
   {
      for(i=0;i<6;i++)
      {
         scanf("%d",&Size[i]);
         if(Size[i]>=0 && Size[i]<=N);
         else return 0;
      }
      for(S=0,i=0;i<6;i++)
         S+=Size[i];
      if(S==N)
      {
         scanf("%d%d",&T,&P);
         if((T>=2 && T<=1000000000) && (P>=2 && P<=1000000000))
         {
            //티 주문할 수량을 구한다. 
            for(count_T=0,i=0;i<6;i++)
               if(Size[i]%T==0) count_T+=Size[i]/T;
               else count_T+=(Size[i]/T)+1;

            //결과출력 
            printf("%d\n%d %d",count_T,N/P,N%P);
         }
         else return 0;
      }
   }
   return 0;
}

 

참고풀이결과]

 

 

 

 

 

대한민국의 아름다운 영토, 독도의 봄

 

반응형

댓글