Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- Binary Tree
- Data Structure
- two pointers
- Class
- Math
- Matrix
- java
- greedy
- Number Theory
- Stack
- Counting
- 구현
- 자바
- simulation
- sorting
- 코딩테스트
- hash table
- array
- bit manipulation
- 파이썬
- Method
- dynamic programming
- implement
- 코테
- Tree
- string
- database
- geometry
- Binary Search
- SQL
Archives
- Today
- Total
코린이의 소소한 공부노트
[백준 온라인 저지] 24313. 알고리즘 수업 - 점근적 표기 1 본문
알고리즘의 소요 시간을 나타내는 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, n0가 O(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)의 정의를 만족하게 된다.
'코딩테스트 풀이 > JAVA' 카테고리의 다른 글
[백준 온라인 저지] 2750. 수 정렬하기 (0) | 2023.04.07 |
---|---|
[백준 온라인 저지] 2798. 블랙잭 (0) | 2023.04.07 |
[백준 온라인 저지] 24267. 알고리즘 수업 - 알고리즘의 수행 시간 6 (0) | 2023.04.07 |
[백준 온라인 저지] 24266. 알고리즘 수업 - 알고리즘의 수행 시간 5 (0) | 2023.04.07 |
[백준 온라인 저지] 24265. 알고리즘 수업 - 알고리즘의 수행 시간 4 (0) | 2023.04.07 |