코린이의 소소한 공부노트

[백준 온라인 저지] 24313. 알고리즘 수업 - 점근적 표기 1 본문

코딩테스트 풀이/JAVA

[백준 온라인 저지] 24313. 알고리즘 수업 - 점근적 표기 1

무지맘 2023. 4. 7. 12:27

알고리즘의 소요 시간을 나타내는 O-표기법(-)을 다음과 같이 정의하자.

O(g(n)) = {f(n) | 모든 n ≥ n0에 대하여 f(n) ≤ c × g(n)인 양의 상수 c와 n0가 존재한다}

 

- 입력: 첫째 줄에 함수 f(n)을 나타내는 정수 a1, a0가 주어진다. (0 |ai| 100) 둘째 줄에 양의 정수 c가 주어진다. (1 c 100) 셋째 줄에 양의 정수 n0가 주어진다. (1 n0 100)

 

- 출력: f(n), c, n0O(n) 정의를 만족하면 1, 아니면 0을 출력한다.

 

import java.util.*;
class Main{
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        int a1 = scan.nextInt(), a0 = scan.nextInt(), c = scan.nextInt(), n0 = scan.nextInt();
        int answer;
        if(a1<c){
            if((double)a0/(c-a1) > n0) answer = 0;
            else answer = 1;
        } else if(a1==c){
            if(a0>0) answer = 0;
            else answer = 1;
        } else
            answer = 0;
        System.out.print(answer);
    }
}

- 아래 부등식을  풀어 나오는 답이 n0이상일 때 f(n)이 O(n)의 정의를 만족하게 된다.