본문 바로가기
코딩공부/백준 (python)

[백준 1712] 손익분기점 (Python)

by CodingKwon 2022. 3. 18.

문제 링크

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

 

1712번: 손익분기점

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

www.acmicpc.net

 

나의 코드 1 (Python) - 시간초과

a, b, c = map(int, input().split()) 	# 입력
tmp = 0 	# c(판매액)의 값을 올릴 변수
cnt = 0 	# 몇 개 팔아야 이득?

if b >= c: 	# b가 c보다 크거나 같으면 절대 손익 분기점을 넘을 수 없음
    print(-1)
else:
    while a >= tmp: 	# 생산단가가 판매액보다 작아질때까지
        a += b 	# 고정비용 + 가변비용
        tmp += c 	# 판매액
        cnt += 1 	# 카운팅
	print(cnt)

위는 처음 짠 코드입니다.

단순히 (고정비용 + 가변비용)이 판매액보다 커질 때를 구하는 코드를 짰습니다.

하지만 이런 경우 예제 입력 3 을 통과하려면 연산량이 말도 안되게 커서 시간초과를 하였습니다.

# 예제 입력 3
2100000000 9 10

 

나의 코드 2 (Python) - 정답

a, b, c = map(int, input().split()) 	# 입력


if b >= c: 	# 가변비용이 판매액보다 큰 경우
    print(-1)
else:
    print(a // (c - b) + 1)

 

이 경우는 조금 더 수학적인 접근입니다. 고정비용을 (판매액 - 가변비용)으로 나눈 것에 1을 더 한 값이 바로 손익분기점이 됩니다.

 

 

 

댓글