문제

내가 작성한 코드
# A(고정비용), B(가변비용), C(1대의 노트북 가격)
a, b, c = map(int, input().split())
if (c-b) > 0:
print( (a // (c-b)) +1)
else:
print(-1)
> 처음에 while문으로 했는데 '시간 초과'로 실패했다. 천천히 수학적으로 생각하면은 길이 보인다!!
코드 설명
a, b, c = map(int, input().split())
> a는 고정비용, b는 가변비용, c는 1대의 노트북 가격으로 한 줄에 빈칸을 간격으로 떨어져있으므로 map(int, input().split()) 함수를 사용했다.
if (c-b) > 0:
print( (a // (c-b)) +1)
else:
print(-1)
> 코드를 짜기 전에 1차 방정식으로 이 문제를 생각해 볼 수 있다.
> 고정비용 + (가변비용 * 노트북 판매 수) < 노트북 가격 * 노트북 판매 수
> 노트북 판매수를 x로 치환하면 -> 고정비용 + 가변비용x < 노트북가격x -> (노트북 가격 - 가변비용)x > 고정비용
> 추가로, 손익분기점이 존재하지 않으면 -1을 출력하라고 했기 때문에 if-else문을 적용했습니다.
> (c - b)는 (노트북 가격 - 가변 비용)인데 이 값이 0보다 작으면 손익분기점이 존재하지 않게된다.
> 그러므로 0보다 작으면 print(-1)을 출력하게 했다.
> (a // (c-b) ) + 1은 고정비용을 (노트북 가격- 가변비용)의 값으로 나누었을 때 몫에 1을 추가한 값이다.
> 1을 추가하지 않으면 손익분기점이 0일 때이므로 +1을 해주었습니다.
'Coding > 백준' 카테고리의 다른 글
| [1193번] 기본 수학1 - 분수찾기 with Python (★) (0) | 2022.07.20 |
|---|---|
| [2292번] 기본 수학1 - 벌집 with Python (★) (0) | 2022.07.20 |
| [1316번] 문자열 - 그룹 단어 체커 with Python(★) (0) | 2022.07.19 |
| [2941번] 문자열 - 크로아티아 알파벳 with Python (0) | 2022.07.19 |
| [5622번] 문자열 - 다이얼 with Python (★) (0) | 2022.07.19 |