카테고리 없음
[JAVA] 19532 수학은 비대면강의입니다_브루트포스
오늘도개발
2023. 4. 13. 15:38
https://www.acmicpc.net/problem/19532
19532번: 수학은 비대면강의입니다
정수 $a$, $b$, $c$, $d$, $e$, $f$가 공백으로 구분되어 차례대로 주어진다. ($-999 \leq a,b,c,d,e,f \leq 999$) 문제에서 언급한 방정식을 만족하는 $\left(x,y\right)$가 유일하게 존재하고, 이 때 $x$와 $y$가 각각 $-
www.acmicpc.net
접근 :
- 2차 연립 방정식을 입력받는다.
- 입력 받은 그대로 x , y에 -999 ~ 999 까지 입력하여 정답인 경우를 찾는다.
* 공식 유도를 통하여 for 문 없이 계산할 수 있지만, 브루트포스를 요구한 문제임으로 모든 경우를 입력하여 구한다.
코드 구현 :
import java.io.*;
public class Main {
static class Equations {
private int[] nums;
public Equations(int[] nums) {
this.nums = nums;
}
public String getXY() {
StringBuilder sb = new StringBuilder();
for (int i = -999; i < 1000; i++) {
for (int j = -999; j < 1000; j++) {
if ((nums[0] * i + nums[1] * j == nums[2]) && (nums[3] * i + nums[4] * j == nums[5])) {
return sb.append(i).append(" ").append(j).toString();
}
}
}
return null;
}
}
public static void main(String[] srgs) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] inputs = br.readLine().split(" ");
int[] inputs_num = new int[6];
for (int i = 0; i < inputs_num.length; i++) {
inputs_num[i] = Integer.parseInt(inputs[i]);
}
Equations equations = new Equations(inputs_num);
System.out.println(equations.getXY());
br.close();
}
}