상세 컨텐츠

본문 제목

백준 5532 방학숙제

알고리즘/C

by 셉인 2022. 7. 4. 01:00

본문

728x90
 
 
<맞은 코드>
#include <stdio.h>

int main()
{
    int L=0,A=0,B=0,C=0,D=0;
    scanf("%d\n%d\n%d\n%d\n%d",&L,&A,&B,&C,&D);
    if(2<=L&&L<=40&&1<=A&&1<=B&&A<=1000&&B<=1000&&1<=C&&1<=D&&D<=100&&C<=100)
    {
        int day=0;
        int korean=0, math=0;
        if((A/C)>(B/D)){
        if(A%C!=0)
        {korean=(A/C+1);}
        else if(A%C==0)
        {korean=(A/C);}
        day=L-(korean);
        }

        else{
        if(B%D!=0)
       { math=B/D+1;}
        else if(B%D==0)
        {math=B/D;}
        day=L-(math);
        }

        printf("%d", day);
    }
   return 0;
}
 

<틀린코드>

#include <stdio.h>

int main()
{
    int L=0,A=0,B=0,C=0,D=0;
    scanf("%d\n%d\n%d\n%d\n%d",&L,&A,&B,&C,&D);
    if(2<=L&&L<=40&&1<=A&&1<=B&&A<=1000&&B<=1000&&1<=C&&1<=D&&D<=100&&C<=100)
    {
        int day=0;
        int korean=0, math=0;
        if(A%C!=0)
        korean=(A/C+1);
        else if(A%C==0)
        korean=(A/C);
        else if(B%D!=0)
        math=B/D+1;
        else if(B%D==0)
        math=B/D;
        
        if(korean>math)
       { day=L-(korean);}
        else if(math>korean)
        {day=L-(math);}
        printf("%d", day);
    }
   return 0;
}

 

틀린 이유 : 단순히 A/C, B/D로 비교를 해야하는데 +1을 한 상태의 것과 비교하는 경우도 있었다. 이런 경우를 대비해 먼저 math가 큰지, korean이 큰지 비교를 해준 다음에 들어가는 것이 맞는 경우이다. n번 틀리고 난 다음 깨달음. 틀린걸 너무 늦게 알게 되어서 아쉽다.

728x90

'알고리즘 > C' 카테고리의 다른 글

백준 2439 별 찍기-2  (0) 2022.07.04
백준 2441 별 찍기 -4<실패>  (0) 2022.07.04
백준 1271 엄청난 부자2<실패>  (4) 2022.07.04
백준 2440 별찍기 -3  (0) 2022.07.03
절대강자 C언어 코스웨어 연습문제 제 1장  (0) 2022.07.03

관련글 더보기

댓글 영역