아이디어 : 식을 최대한 단순화 시켜보자
모두 된다고 가정하고, 안되는 부분만 제외하자
1. 우선 식을 알아보자
f(n) = a1n + a0 이다.
O(g(n)) = {f(n) 에서 O(n) 으로 간소화 되었다.
따라서 g(n) = n이다.
2. 제약사항을 알아보자.
(1). n ≥ n0
(2). f(n) ≤ c × g(n)
3. 식을 단순화 해보자.
f(n) ≤ c × n 이다. 위에서 정의된 식을 대입하면,
a1n + a0 ≤ c × n이 된다.
n끼리 묶으면
n(a1-c) <= -a0
n(c-a1) >= a0가 된다.
이 식이 항상 참이되기 위해서는 c-a1이 항상 양수여야 한다. 따라서 c-a1 < 0 상황을 제외시킨다.
또한 n(c-a1) >= a0 자체도 성립해야한다.
n(c-a1) < a0 인 상황을 제거한다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
int a1 = sc.nextInt();
int a0 = sc.nextInt();
int c = sc.nextInt();
int n0 = sc.nextInt();
//각 숫자를 입력받는다.
int ans = 1;
//모두 정답이라고 우선 가정
if ((c - a1 < 0)) {
ans = 0;
}
//거짓이 되는 경우 1
if ((c - a1) * n0 < a0) {
ans = 0;
}
//거짓이 되는 경우2
System.out.print(ans);
//출력
}
}
'java' 카테고리의 다른 글
| 백준 2231 분해합 java 자바 (0) | 2024.01.16 |
|---|---|
| 백준 2789 블랙잭 java 자바 (0) | 2024.01.16 |
| 백준 3009 네 번째 점 (0) | 2024.01.12 |
| 백준 1085 직사각형 탈출 자바 java (0) | 2024.01.12 |
| 백준 11653 소인수분해 자바 java (0) | 2024.01.12 |