-
백준 1712 문제 해결알고리즘/백준 문제 2019. 7. 16. 07:11
이런 문제이고, 내가 아무리 수학을 모른다지만 대충 보고도 풀만한 쉬운 문제같았다... 그런데.... 자꾸 답이 틀리다는 것이다.....
찾아보니 총 수익과 지출을 계산하는 과정에서 오버플로우가 생길수 있다는 나의 결론이 나와서 아는건 없고 코드는 점점길어지고 저런 쌩쇼를 하는 지경까지 이르렀는데... 도저히 모르겠어서 좀 검색을 해보니ㅋㅋ.. 좀 더 수학에 관한? 문제였다. 막 그런 수학은 아니고.. 변수들을 간단하게 만들어야 하는? (약분은 아니고 이걸 뭐라고 하는지 까먹었다.)
고정비용을 a, 가변비용을 b, 판매가격을 c, 판매된 노트북의 수를 x로 놓자.
이 문제는 총판매액>총비용 이 되는 지점에서 x가 몇이냐를 찾는 문제이다.
=====> c*x > a+(b*x) 이고, 이는 (c-b)x > a => x > a/(c-b) 로 나타낼 수 있다.
x의 값을 찾아야 하니까 x = a/(c-b), 여기서 a/(c-b)가 소수점이 나오거나 딱 나누어 떨어지는데, 소수점이 나오면 +1을 해줘야 손익분기점을 넘고, 어쨌든 딱 나누어 떨어져도 딱 손익분기점에 도달하는거지 넘는게 아니니까 +1을 해줘야 한다.
따라서
x = a/(c-b)+1
그리고 가변비용이 판매가격과 같거나 높으면 수익이 총판매액이 총비용을 넘어설 수가 없으므로
c>b 라는 조건이 필요하다.
(같은 조건인데 다른 방법으로는, x > a/(c-b) 에서 (c-b)가 분모인데, 분모는 0이 될 수 없고, 비용이 음수가 될수는 없으므로 c-b>0 또는 c>b 라는 조건을 만들 수 있다.)
따라서 답은 아주 간단하다..
===
원래 수학도 잘 모르고 스스로 사고력이 떨어진다고 생각하기 때문에 컴퓨터공학과를 선택한걸 조금 후회하기도 하고 계속 코딩은 나의 길이 아니다 라는 생각만 했다. 그러다가 군대를 전역하고 할줄아는게 아무것도 없으니 어느정도만이라도 하자 라는 마음에서 java에 도전해보기로 했다.. 간단한 문법만 다시 확인하고 백준 1712를 처음으로 풀어보았는데, 어려운 문제는 아니었지만 어렵지않다는걸 알면서 자꾸 틀리는게 화도 나고 답답했다. 비록 외부의 도움을 받았지만 완전히 이해하고 풀었을때 성취감이 있고 motivation이 되는거같다.