본문 바로가기
java

백준 24313 자바 java

by MiaCoder 2024. 1. 15.

아이디어 : 식을 최대한 단순화 시켜보자

                모두 된다고 가정하고, 안되는 부분만 제외하자

 

 

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