본문 바로가기

algorithm/백준알고리즘

[백준알고리즘] 1712번: 손익분기점 -Python, C++

728x90

[백준알고리즘] 1712번: 손익분기점 -Python

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

 

1712번: 손익분기점

월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 인건비 등 총 B만원의 가변 비용이 든다고 한다. 예를 들어 A=1,000, B=70이라고 하자. 이 경우 노트북을 한 대 생산하는 데는 총 1,070만원이 들며, 열 대 생산하는 데는 총 1,700만원이 든다. 노트북 가격이 C만원으로 책정되었다고 한다. 일반적으로

www.acmicpc.net

통과율이 낮길래 한 번 풀어봤는데 간단하게 풀렸다.

 

아마 처음 하시는 분들이 직접 a+b*i < c*i 방식으로 돌리면서 여러 문제가 나오셨던 것 같다.

파이썬은 정수형에 나타낼 수 있는 제한이 따로 없어서 저러한 방법을 하더라도 크게 문제 되지는 않겠지만, 굳이 직접 for문을 돌릴 필요는 없는 문제다. 식을 다음과 같이 변경하면 가능하다.

a + b*i < c*i
a < (c - b) * i
a // (c - b) < i    (단 (c - b > 0) 일 때)

 

import sys

a, b, c = map(int, sys.stdin.readline().split())
if c-b <= 0: print(-1)
else: print(a//(c-b) + 1)

 

아래는 C++로 추가 풀이한 코드이다.

계산 방법은 마찬가지로 동일하게 적용했다.

 

 

#include <iostream>

int main(void)
{
	int a, b, c;
	std::cin >> a >> b >> c;
	if (c <= b)
	{
		std::cout << -1;
		return 0;
	}

	int x = int(a / (c - b)) + 1;
	std::cout << x;
}

 

잘못된 점이나 부족한 점 지적해주시면 감사하겠습니다

728x90