본문 바로가기
DEV/알고리즘 문제 풀이

[백준] 1712번 손익분기점 with python

by krokerdile 2021. 6. 27.

어떻게 접근을 했는가?

처음에는 막연히 생각했던게 그냥 봐도 손익분기점을 구하는 문제였고, 그냥 고정비용 빼주고, 나머지 가변비용을 생각해서 그걸 계산해주면 바로 풀리지 않을까 라고 생각을 했던 거 같습니다. 물론 문제를 풀면서도 그게 어느정도 맞긴 해서 거의 답에 근접 하기는 했었습니다. 

import sys
input = sys.stdin.readline
# 이걸로 일단 선언 해두기
b = input().split()
un_v = int(b[0])
pl_v = int(b[1])
no_v = int(b[2])

temp = int(un_v / (no_v - pl_v))
temp2 = int(un_v % (no_v - pl_v))
if temp < 0:
    print(-1)
elif temp > 0 and temp2 > 0:
    print(temp)
else:
    print(temp+1)

 처음 맞다고 생각을 해서 제출했던 코드를 보더라도 그냥 이 문제를 읽고 보면 이게 맞다는 생각을 다른 분들도 하셨지 않았을까 생각합니다. 당연히 그냥 고정비용 보다 노트북 가격에서 가변비용을 뺀게 더 많아지면 수익이 나는 문제 라고 생각을 하게 됩니다. 그게 맞기도 하지만 제가 문제를 풀면서 간과 한 점이 있었습니다. 일단은 노트북 비용 - 가변비용 만 해도 손익분기점을 넘길 일이 없다는 점 + 그냥 나누기를 하면 float값으로 결과가 나온다는 점(이건 기초적인 건데.. ㅎㅎ)을 간과하고 한 5번 제출했다는 게 지금 생각해도 어이가 없는 점이 있습니다. 

import sys
input = sys.stdin.readline
# 이걸로 일단 선언 해두기
b = input().split()
q = int(b[0])
w = int(b[1])
e = int(b[2])


if w >= e:
    print(-1)
else:
    print(q // (e-w) +1)

 그래서 위에서 얘기 했던걸 짧고 굵게 정리해서 나온 코드가 바로 위의 코드 입니다 ㅎㅎ

'DEV > 알고리즘 문제 풀이' 카테고리의 다른 글

[백준][파이썬] 1193번 분수찾기  (0) 2022.01.15
꾸준히 다시 공부하기  (0) 2022.01.15
[백준] 4673번 with Python  (0) 2021.06.16
[백준] 2884번 with Python  (0) 2021.06.08