본문 바로가기

컴퓨터/백준 알고리즘

백준 알고리즘 1712번: 손익분기점 C언어 (실패)

문제 출처: www.acmicpc.net/problem/1712

 

1712번: 손익분기점

월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와

www.acmicpc.net

1. 코드

#include <stdio.h>

int main(void)
{
    long long A = 0, B = 0, C = 0, D = 1;
    
    scanf("%lld %lld %lld", &A, &B, &C);
    
    if(B >= C)
    {
    	printf("-1");
    	return 0;
    }
    while(1)
    {
        if(A + B * D < C * D)
        {
            printf("%lld", D);
            break;
        }
        D++;
    }
    return 0;
}

2. 문제 해결 방식

이 문제를 나는 단순하게 무한 반복문을 통해 해결하려고 했다. 그래서 손익분기점의 값을 변수 D로 생각하여 D를 점차 증가시켜서 조건문에 해당하는 D의 값을 출력하는 것이다.

3. 느낀 점

이렇게 풀었는데 계속해서 시간 초과가 나온다. 혹시 변수의 크기 문제인지 확인하기 위해 변수의 자료형을 int형에서 long long 형으로 바꿨지만 아닌 것 같다. 하루만 더 고민해보고 푸는 방식을 바꾸는 방식으로 고민을 하거나 다른 사람들이 풀어본 방식을 봐야할 것 같다.

문제 자체는 간단하지만 시간 제한이 있는 경우에는 많이 힘든 것 같다. 알고리즘 자체가 효율적으로 정확하게 풀어내는 것이 목적이자 목표여서 어쩔 수 없는 것 같다.

이 문제를 풀면서 드는 생각은 다른 방법이 없다는 생각밖에 안든다. 물론 나의 고정관념이겠지만 아직 나에게는 많이 어려운 것 같다.