πŸ’  Cpp/[BOJ] λ‹¨κ³„λ³„λ‘œ 풀어보기

[BOJ][C++] λ°±μ€€ 1712번 : 손읡뢄기점

선달 2021. 10. 9. 22:08
λ°˜μ‘ν˜•

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

 

1712번: 손읡뢄기점

μ›”λ“œμ „μžλŠ” λ…ΈνŠΈλΆμ„ μ œμ‘°ν•˜κ³  νŒλ§€ν•˜λŠ” νšŒμ‚¬μ΄λ‹€. λ…ΈνŠΈλΆ 판맀 λŒ€μˆ˜μ— 상관없이 맀년 μž„λŒ€λ£Œ, μž¬μ‚°μ„Έ, λ³΄ν—˜λ£Œ, κΈ‰μ—¬ λ“± Aλ§Œμ›μ˜ κ³ μ • λΉ„μš©μ΄ λ“€λ©°, ν•œ λŒ€μ˜ λ…ΈνŠΈλΆμ„ μƒμ‚°ν•˜λŠ” λ°μ—λŠ” μž¬λ£ŒλΉ„μ™€

www.acmicpc.net

 

문제

μ›”λ“œμ „μžλŠ” λ…ΈνŠΈλΆμ„ μ œμ‘°ν•˜κ³  νŒλ§€ν•˜λŠ” νšŒμ‚¬μ΄λ‹€. λ…ΈνŠΈλΆ 판맀 λŒ€μˆ˜μ— 상관없이 맀년 μž„λŒ€λ£Œ, μž¬μ‚°μ„Έ, λ³΄ν—˜λ£Œ, κΈ‰μ—¬ λ“± Aλ§Œμ›μ˜ κ³ μ • λΉ„μš©μ΄ λ“€λ©°, ν•œ λŒ€μ˜ λ…ΈνŠΈλΆμ„ μƒμ‚°ν•˜λŠ” λ°μ—λŠ” μž¬λ£ŒλΉ„μ™€ 인건비 λ“± 총 Bλ§Œμ›μ˜ κ°€λ³€ λΉ„μš©μ΄ λ“ λ‹€κ³  ν•œλ‹€.

예λ₯Ό λ“€μ–΄ A=1,000, B=70이라고 ν•˜μž. 이 경우 λ…ΈνŠΈλΆμ„ ν•œ λŒ€ μƒμ‚°ν•˜λŠ” λ°λŠ” 총 1,070λ§Œμ›μ΄ λ“€λ©°, μ—΄ λŒ€ μƒμ‚°ν•˜λŠ” λ°λŠ” 총 1,700λ§Œμ›μ΄ λ“ λ‹€.

λ…ΈνŠΈλΆ 가격이 Cλ§Œμ›μœΌλ‘œ μ±…μ •λ˜μ—ˆλ‹€κ³  ν•œλ‹€. 일반적으둜 생산 λŒ€μˆ˜λ₯Ό 늘렀 κ°€λ‹€ 보면 μ–΄λŠ μˆœκ°„ 총 μˆ˜μž…(νŒλ§€λΉ„μš©)이 총 λΉ„μš©(=κ³ μ •λΉ„μš©+κ°€λ³€λΉ„μš©)보닀 λ§Žμ•„μ§€κ²Œ λœλ‹€. 졜초둜 총 μˆ˜μž…μ΄ 총 λΉ„μš©λ³΄λ‹€ λ§Žμ•„μ Έ 이읡이 λ°œμƒν•˜λŠ” 지점을 손읡뢄기점(BREAK-EVEN POINT)이라고 ν•œλ‹€.

A, B, Cκ°€ μ£Όμ–΄μ‘Œμ„ λ•Œ, 손읡뢄기점을 κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

μž…λ ₯

첫째 쀄에 A, B, Cκ°€ 빈 칸을 사이에 두고 μˆœμ„œλŒ€λ‘œ 주어진닀. A, B, CλŠ” 21μ–΅ μ΄ν•˜μ˜ μžμ—°μˆ˜μ΄λ‹€.

좜λ ₯

첫 번째 쀄에 손읡뢄기점 즉 졜초둜 이읡이 λ°œμƒν•˜λŠ” νŒλ§€λŸ‰μ„ 좜λ ₯ν•œλ‹€. 손읡뢄기점이 μ‘΄μž¬ν•˜μ§€ μ•ŠμœΌλ©΄ -1을 좜λ ₯ν•œλ‹€.

 

풀이

1.

#include <iostream>

using namespace std;

int main () {
    
    int a, b, c;
    cin >> a >> b >> c;
    
    if(b >= c){
        cout << -1;
        return 0;
    }
    
    for(int i=0; true; i++){
        if(a < (c-b)*i){
            cout << i;
            return 0;
        }
    }
}

2100000000λ₯Ό λ„£μ—ˆμ„ λ•Œ 감당λͺ»ν•¨

 

2.

#include <iostream>

using namespace std;

int main () {
    
    int a, b, c;
    cin >> a >> b >> c;
    
    if(b >= c){
        cout << -1;
        return 0;
    }
    
    for(long long i=0; true; i++){
        if(a < (c-b)*i){
            cout << i;
            return 0;
        }
    }
}

μ‹œκ°„μ΄ˆκ³Ό

 

3.

#include <iostream>

using namespace std;

int main () {
    
    int a, b, c;
    cin >> a >> b >> c;
    
    if(b >= c){
        cout << -1;
    }
    else {
        cout << a/(c-b)+1;
    }
    
    return 0;
}

성곡..

 

μ—νœ΄..

λ°˜μ‘ν˜•