[1712] 손익분기점 - 수학

2019. 11. 24. 04:14

1일 1알고리즘! 시작하자!

 

 

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

 

 

대충 이런 문제다. 또 쉽네!! 하고 껍죽대다가 개맞쳐맞았다.

 

태그는 "수학"

 

 

또 댕청하게 생각했다가 그냥 어휴 while 문 넣고 1부터 뺑뺑이 굿 ~ ㅎ 했다가 시간초과 오류났다. 그렇다. 나는 시간복잡도에 쥐약인 사람이다... 카카오 인턴도 효율성 테스트에서 나가리 먹어버린사람.........그것만 맞았어도 ........ 조금 인턴적 희망이^^(??)

 

 

아무튼 본론으로 들어가자. 대충 A+B*n ( n=컴퓨터 판매수) <= C*n 로 n++해주면서 while 뺑뺑이 돌리면 될 줄 알았다. 아니나 다를까 -1 조건도 생각못하고 시간도 초과해버렸다. 왜냐하면 나는 O(n) 나오니까.

 

 

태그가 수학인 만큼 수학적 접근을 해보기로 했다. 수식을 세워서 부등호를 기준으로 이리저리 왔다갔다 해보니 (C-B)*n 과 A가 눈에 들어왔다. 생각이 든건

1. C가 무조건 B보다는 커야지 이익이 나겠다.

2. 그렇다면 C-B가 n에 의해 좌우되는 이익일테고 이 순이익이 A보다는 커져야겠구나.

싶어서 아래와 같은 답이 나왔다.

line = input()
a,b,c = line.split(' ')

a=int(a)
b=int(b)
c=int(c)

cnt = 1

if c <= b :
    print ("-1")
else :
    k = a/(c-b)
    print(int(k+1))

 

(갑자기 길을 잃은 cnt)

확실히 파이썬 코드 면에서는 깔끔하고 좋지만 결과들을 보면 진짜 말도안되게 혼자 뚱뚱하다. (아 c++도 다시해야하는데 귀찮다)

오늘의 교훈 :

 >>> a,b = map(int,input.split()) 이 더 간편하다. (이거 맨날까먹어 흑흑)

 

 

+) 코드 블럭 설정해 놨는데 블로그 스킨이 더 쎄서 블럭이 날라가버렸다. 이건 간단한 코드라 괜찮은데... 앞으론 방법을 바꿔야겠다

'학문 > 현타 일기 - 알고리즘의 향연' 카테고리의 다른 글

191124 졸업반 반성일기  (0) 2019.11.24