반응형

문제:

codeup.kr/problem.php?id=4877&rid=0

 

방 배정하기

방의 정원을 나타내는 서로 다른 세 자연수 $A, B, C$ ($1 ≤ A < B < C ≤ 50$) 와 전체 학생 수를 나타내는 자연수 $N$ ($1 ≤ N ≤ 300$)이 공백으로 분리되어 한 줄에 주어진다.

codeup.kr

 

코드:

 

#include<stdio.h>

int main()
{
    /*
        방이 가장 많은 경우는 정원이 제일 작은 a 방으로만 배정하는 경우이다.
        이를 이용하여 최대 방 갯수를 구하고
        경우의 수를 따져서 정답을 구한다.
    */
    
    
    int a,b,c,n;      // 각 방의 정원 a b c , 전체 인원수 n
    int flag = 0;     // 성공 여부를 결정지을 flag
    
    //input
    scanf("%d %d %d %d", &a, &b, &c, &n);

    //최대 방 갯수 설정
    int max = n/a;

    //solution
    for(int i = 0; i <= max; ++i){
        for(int j = 0; j <= max; ++j ){
            for(int k = 0; k<=max; ++k){
                if(a*i + b*j + c*k == n){
                    flag = 1;
                    break;
                }
            }
        }
    }

    //print
    printf("%d", flag);






}

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기