티스토리 뷰
알고리즘/문제 풀이
[BOJ] 백준 21868 - 미적분학 입문하기 (Javascript, 2021 연세대학교 신입생 프로그래밍 경진대회)
degurii 2021. 6. 13. 22:36728x90
문제 링크
https://www.acmicpc.net/problem/21868
21868번: 미적분학 입문하기
첫 번째 줄에는 양수 ϵ을 분수로 표현했을 때의 분자와 분모가 공백으로 구분되어 주어진다. 각 분자와 분모는 1 이상 10000 이하의 자연수다. 두 번째 줄에는 일차 이하의 다항함수 $f
www.acmicpc.net
풀이
엡실론-델타 논법을 공부한지 좀 되어서 다음 글을 참고하였습니다.
엡실론 델타 논법(ε-δ 논법)으로 함수의 극한 더 잘 이해하기 - 류모찌
주어진 다항 함수를 다음처럼 씁시다.
f(x)=ax+b
문제에서 요구하는 L은 극한값이므로, 단순히 f(x0) 값을 구해주면 됩니다.
다음으론 δ의 최댓값을 구해야합니다.
위의 글을 참고하면, x가 x0와 다른 값을 가지면서 한없이 가까워진다는 표현을 다음처럼 쓸 수 있습니다.
적당한 양수 ϵ에 대해, 0<|x−x0|<ϵ
그리고 (|f(x)−L|<ϵ) 을 만족시키는 (0<|x−x0|<δ) 에서 δ값을 찾을 수 있습니다.
0<|x−x0|<δ⟹|a(x−x0)|<ϵ
0<|x−x0|<δ⟹|x−x0|<ϵ|a|
이므로,
δ≤ϵ|a|
이고, δ의 최댓값은 ϵ|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