[백준(BOJ)] Farm(16283번)_C++

2023. 9. 15. 16:13Problem Solving/Math

728x90
반응형
SMALL

나는 처음에 수학적으로 접근하려 했다.

아니 수학적으로 접근해야 하는 것은 맞는데

나는 연립방정식을 활용해서 답을 구하려 했다.

 

하지만 생각보다 컴퓨터는 멍청하고, 빨랐다.

컴퓨터에게는 연립방정식의 해를 구하는 것보다 하나씩 x, y쌍을 대입하여

해를 구하는 것이 더 쉬운 방법이다.

 

그냥 브루트포스로 해결하자.

 

 


정답 코드

#include <iostream>

using namespace std;

int a, b, n, w;

int main(){
    cin.tie(NULL);
    cout.tie(NULL);
    ios_base::sync_with_stdio(false);

    //input
    cin >> a >> b >> n >> w;

    //brute force
    int x, y, answer_cnt = 0;

    for (int i = 1; i <= n - 1; i++){
        if (a * i + b * (n - i) == w){
            answer_cnt++;
            x = i;
            y = n - i;
        }
    }

    //output
    if (answer_cnt == 1)
        cout << x << " " << y;
    else
        cout << -1;
}
728x90
반응형
LIST