티스토리 뷰
알고리즘/문제 풀이
[BOJ] 백준 21868 - 미적분학 입문하기 (Javascript, 2021 연세대학교 신입생 프로그래밍 경진대회)
degurii 2021. 6. 13. 22:36728x90
문제 링크
https://www.acmicpc.net/problem/21868
풀이
엡실론-델타 논법을 공부한지 좀 되어서 다음 글을 참고하였습니다.
엡실론 델타 논법(ε-δ 논법)으로 함수의 극한 더 잘 이해하기 - 류모찌
주어진 다항 함수를 다음처럼 씁시다.
$$f(x) = ax + b$$
문제에서 요구하는 $L$은 극한값이므로, 단순히 $f(x_0)$ 값을 구해주면 됩니다.
다음으론 $\delta$의 최댓값을 구해야합니다.
위의 글을 참고하면, $x$가 $x_0$와 다른 값을 가지면서 한없이 가까워진다는 표현을 다음처럼 쓸 수 있습니다.
적당한 양수 $\epsilon$에 대해, $0 < |x - x_0| < \epsilon$
그리고 $(|f(x) - L| < \epsilon)$ 을 만족시키는 $(0 < |x - x_0| < \delta)$ 에서 $\delta$값을 찾을 수 있습니다.
$$0 < |x - x_0| < \delta \implies |a(x - x_0)| < \epsilon$$
$$0 < |x - x_0| < \delta \implies |x - x_0| < \dfrac{\epsilon}{|a|}$$
이므로,
$$\delta \leq \dfrac{\epsilon}{|a|}$$
이고, $\delta$의 최댓값은 $\dfrac{\epsilon}{|a|}$ 입니다.
$a$가 $0$인 경우 "0 0"을 출력해주면됩니다.
정답 코드
const fs = require('fs');
const stdin = fs.readFileSync('/dev/stdin').toString().split('\n');
const input = (() => {
let line = 0;
return () => stdin[line++];
})();
const main = function () {
const [입실론분자, 입실론분모] = input().split(' ').map(Number);
const [a, b] = input().split(' ').map(Number);
const x0 = +input();
const L = a * x0 + b;
console.log(L);
if(a === 0) {
console.log('0 0');
return;
}
const 분자 = 입실론분자, 분모 = 입실론분모 * Math.abs(a);
console.log(분자, 분모);
};
main();
728x90
'알고리즘 > 문제 풀이' 카테고리의 다른 글
댓글