백준 1712 - 손익분기점 구하기

sol1 :
cn > a+(bn) -> 이 식이 손익분기점을 넘는 값을 구해준다까지는 생각해냈는데, 이걸 그냥 단순하게 for문 안에 if 문으로 조건을 넣어줬다. ^^...
파이썬 문법을 아직 다 익히지 못해서 그냥 a,b,c 값도 넣어줌.
이렇게하면 안됨^^!!!!


어마무시하게 틀렸닿ㅎㅎㅎㅎ

a,b,c 값을 입력받을 때
map함수를 이용하여 입력받는다.

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

input().split()함수는 여러 개의 숫자를 입력받을 때 쓰인다. input() 함수를 통해 입력받은 수들을 split()을 통해 분리한다.
그리고, map() 함수는 이 입력받은 수들을 반복 가능(iterable)하게 저장하는데, 기본 저장형이 map(dataType, value) 이기 때문에 앞에 int를 선언한 것이다.

sol2 :

# 손익분기점이 존재하지 않으면 -1 출력, 첫째줄에 판매량 출력
a,b,c = map(int, input().split())
# c * n = a + (b * n)
if b >= c: #손익분기점을 못 넘을 경우
    print(-1)
else:
   print(int(a/(c-b) + 1))

b가 c보다 같거나 크면, 손익분기점을 넘지 못한다는 뜻이기 때문에 처음에 이 부분을 먼저 걸러준다.
그 후, n값을 구하기 위해서는
cn - bn = a
(c-b)n = a
n = a/(c-b) 가 되기 때문에 else 에 이 조건을 넣어주었다. 그랬더니 해결됨.

-> 주어진 예를 무조건 대입해서 이용하려 하지 말고, 어떤 수가 들어와도 조건을 충족시킬 수 있도록 하자.

좋은 웹페이지 즐겨찾기