반응형
입력
A=1,000, B=70이라고 하자.
노트북을 한 대 생산하는 데는 총 1,070만원이 들며, 열 대 생산하는 데는 총 1,700만원이 든다.
최초로 총 수입이 총 비용보다 많아져 이익이 발생하는 지점을 출력해라.
출력
첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 21억 이하의 자연수이다.
풀이
X 대를 생산한다고 가정하고 식을 만들어보면 A + BX >= CX 이 나온다
이를 X 값 위주로 만들어보면
BX - CX <= A
X (B - C) <= A
X <= A / (B - C)
이 나오고 이는 X에 주어지는 최소한의 값이 된다
X <= A / (B - C)
손익 분기점이 존재하지 않을 경우 -1 을 출력해야하니 if 문을 달자
if B < C {
X <= A / (B - C)
} else {
print(-1)
}
X 에 반복해서 값을 더해 손익분기점을 넘는 때를 구해본다
Swift 전체 코드
var input = readLine()!.split(separator: " ")
var (A, B, C, X) = (0, 0, 0, 0)
A = Int("\(input.first!)")!
input.removeFirst()
B = Int("\(input.first!)")!
C = Int("\(input.last!)")!
X = B < C ? A / (C - B) : -1
while true && B < C {
X += 1
if A + (B * X) < C * X {
break
}
}
print(X)
이게 마음에 걸리는데.. readLine으로 읽고 수를 분리하는 과정에서 배열의 첫번째 부분을 부르는 코딩을 작성했다
아래 처럼 배열의 순서로 수를 부를 수 있지만, 위를 택하나 아래를 택하나 취향차이로 두는지 궁금하다
A = Int("\(input.first!)")!
input.removeFirst()
B = Int("\(input.first!)")!
C = Int("\(input.last!)")!
A = Int("\(input[0])")!
B = Int("\(input[1])")!
C = Int("\(input[2])")!
반응형
'개발 > 알고리즘' 카테고리의 다른 글
[백준] 기본 수학 - 2839번 설탕 배달 (0) | 2021.03.30 |
---|---|
[백준] 기본 수학 - 2775번 부녀회장이 될테야 (0) | 2021.03.30 |
[백준] 기본 수학 - 2869번 달팽이는 올라가고 싶다 (0) | 2021.03.30 |
[백준] 기본수학 - 2292번 벌집 (0) | 2021.03.30 |
알고리즘 공부를 하며 (0) | 2020.10.27 |