BOJ[19532] - 수학은 비대면강의입니다 by JavaScript
수학은 비대면강의입니다
문제
언어
- JavaScript
순서도
- x 의 계수를 동일하게 만든 후 두 방정식을 서로 빼서, y = … 식 만들기
- y 의 계수를 동일하게 만든 후 두 방정식을 서로 빼서, x = … 식 만들기
- x 와 y 값 출력
문제 풀이 step 1
- 2 개의 연립방정식이 주어집니다. 이를 풀면 됩니다.
- 두 방정식의 x 의 계수를 동일하게 만든 후 빼줍니다. 그러면 y 의 값을 구할 수 있습니다.
a * d * x + b * d * y = c * da * d * x + a * e * y = e * f(만든 후 빼기)b * d * y - a * e * y = c * d - e * f(y = … 식 만들기)(b * d - a * e) * y = c * d - e * fy = (c * d - e * f) / (b * d - a * e)
- 두 방정식의 y 의 계수를 동일하게 만든 후 빼줍니다. 그러면 x 의 값을 구할 수 있습니다.
- 위의 y 를 구할 때 사용한 방식과 동일
- 구한 x 와 y 를 출력하면 정답입니다.
- 추가 설명은 주석으로 작성하겠습니다.
후기
- 연립방정식을 직접 푸는 방법도 있지만, - 999 ~ 999 의 범위를 이중 반복문으로 완전 탐색하는 방법도 있습니다.
- 속도 측면에서는
2000 * 2000 의 반복을 하는 방법보다는 연립 방정식을 바로 푸는 방법이 더 빠를 것입니다.
소스 코드
const input = require("fs")
.readFileSync("/dev/stdin")
.toString()
.trim()
.split("\n");
const solution = (input) => {
const [a, b, c, d, e, f] = input[0].split(" ").map(Number);
const x = (c * e - b * f) / (a * e - b * d);
const y = (c * d - f * a) / (b * d - e * a);
return [x, y].join(" ");
};
console.log(solution(input));