※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 24315번 문제인 알고리즘 수업 - 점근적 표기 3이다.
문제는 아래 링크를 확인하자.

https://www.acmicpc.net/problem/24315 

 

24315번: 알고리즘 수업 - 점근적 표기 3

f(n) = 7n - 7, g(n) = n, c1 = 6, c2 = 8, n0 = 1이다. f(1) = 0, c1 × g(1) = 6이므로 Θ(n) 정의를 만족하지 못한다.

www.acmicpc.net

주어지는 함수 f(n)=a1n+a0g(n)=n에 대하여, n0의 값과 c1c2의 값을 문제에서 주어진 값으로 할 때 지문에서 주어진 Θ(n)의 정의에 부합하는지를 확인하는 문제이다.

 

주어진 부등식의 각 변 c1g(n), f(n)c2g(n) 셋 다 n에 대한 일차함수 꼴로 나타나므로, n=n0에서의 함숫값의 비교와 양 변의 (일차함수에서의) 기울기를 비교하는 것으로 문제를 해결할 수 있다.

 

아래는 제출한 소스코드이다.

#include <iostream>
using namespace std;

int a1, a0, c1, c2, n0;

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	cin >> a1 >> a0 >> c1 >> c2 >> n0;
	if (c1 <= a1 && a1 <= c2 && c1 * n0 <= a1 * n0 + a0 && a1 * n0 + a0 <= c2 * n0) cout << 1;
	else cout << 0;
}
728x90

+ Recent posts