본문 바로가기
Algorithm/문제풀이_백준

Swift) 백준 1712번

by Joahnee 2021. 8. 3.

요구능력 : 수학적으로 풀 생각을 할 수 있느냐

 

코드설명 : A는 고정비용, B는 가변비용, C는 노트북판매가격이다.

식을 적어봤는데 A + (B * ?) = C * ? 이면 총 수입과 총 이익이 같아지는것 이다.

처음에 해본거

while totalSell > totalInput {
        count += 1
        totalSell = A + (B * count)
        totalInput = C * count
    }

이거 해보니까 너무 오래걸린다. 21억까지 끝날기미가안보인다.

그래서 다음으로 생각한거 수학적으로 풀어봐야겠다.

참고로 x는 노트북 판매대수이다.

A + Bx = Cx  ->  A + (B - C)x = 0 -> A = (C - B)x  ->  A / (C - B) = x

위에서 count를 반복문으로 구하던걸 x로 구했다.

그리고 손익분기점은 최초 총 수입이 총 비용보다 많아져 이익이 발생하는 부분이므로  + 1을 해준다.

 

후기 : 수학적으로 생각해보면 쉬운문제 하지만 반복문의 늪에 빠지면 오래 생각해야되는 문제가 되버린다..

let n = (readLine()?.split(separator: " ").map{ Int($0)! })!
let A = n[0]
let B = n[1]
let C = n[2]

if B >= C {
    print("-1")
}else{
    print("\((A / (C - B)) + 1)")
}

'Algorithm > 문제풀이_백준' 카테고리의 다른 글

Swift) 백준 1193번(분수찾기)  (0) 2021.08.05
Swift) 백준 2292번  (0) 2021.08.05
Swift) 백준 2447번(분할정복)  (0) 2021.08.03
Swift) 백준 10870번  (0) 2021.08.02
Swift) 백준 10872번  (0) 2021.07.31

댓글