1단계 알고리즘 수업 - 알고리즘의 수행 시간 1
- MenOfPassion 알고리즘은 다음과 같다.
MenOfPassion(A[], n) {
i = ⌊n / 2⌋;
return A[i]; # 코드1
}
- 첫째 줄에 코드1 의 수행 횟수를 출력한다.
- 둘째 줄에 코드1의 수행 횟수를 다항식으로 나타내었을 때, 최고차항의 차수를 출력한다. 단, 다항식으로 나타낼 수 없거나 최고차항의 차수가 3보다 크면 4를 출력한다.
public class Step_1 {
public static void main(String[] args) {
System.out.println(1);
System.out.println(0);
}
}
A.
- 상수 값을 받아 배열에서 특정 값을 리턴한다.
- 코드는 1번만 실행되고 코드 실행 회수는 상수부만 있기 때문에 0차원이다.
2단계 알고리즘 수업 - 알고리즘의 수행 시간 2
- MenOfPassion 알고리즘은 다음과 같다.
MenOfPassion(A[], n) {
sum <- 0;
for i <- 1 to n
sum <- sum + A[i]; # 코드1
return sum;
}
- 첫째 줄에 코드1 의 수행 횟수를 출력한다.
- 둘째 줄에 코드1의 수행 횟수를 다항식으로 나타내었을 때, 최고차항의 차수를 출력한다. 단, 다항식으로 나타낼 수 없거나 최고차항의 차수가 3보다 크면 4를 출력한다.
import java.util.Scanner;
public class Step_2 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
System.out.println(a);
System.out.println(1);
}
}
A.
- 반복문을 통해 n번의 반복이 발생한다.
- 발생 회수가 n번이기 때문에 최고차항은 1이다.
3단계 알고리즘 수업 - 알고리즘의 수행 시간 3
- MenOfPassion 알고리즘은 다음과 같다.
MenOfPassion(A[], n) {
sum <- 0;
for i <- 1 to n
for j <- 1 to n
sum <- sum + A[i] × A[j]; # 코드1
return sum;
}
- 첫째 줄에 코드1 의 수행 횟수를 출력한다.
- 둘째 줄에 코드1의 수행 횟수를 다항식으로 나타내었을 때, 최고차항의 차수를 출력한다. 단, 다항식으로 나타낼 수 없거나 최고차항의 차수가 3보다 크면 4를 출력한다.
import java.util.Scanner;
public class Step_2 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
long a = scan.nextInt();
System.out.println(a*a);
System.out.println(2);
}
}
A.
- 반복문을 통해 n의 제곱 번의 반복이 발생한다.
- 발생 회수가 n제곱 번이기 때문에 최고차항은 2이다.
- 반복 회수가 int의 범위를 넘어가기 때문에 long으로 받아야 한다.
4단계 알고리즘 수업 - 알고리즘의 수행 시간 4
- MenOfPassion 알고리즘은 다음과 같다.
MenOfPassion(A[], n) {
sum <- 0;
for i <- 1 to n - 1
for j <- i + 1 to n
sum <- sum + A[i] × A[j]; # 코드1
return sum;
}
- 첫째 줄에 코드1 의 수행 횟수를 출력한다.
- 둘째 줄에 코드1의 수행 횟수를 다항식으로 나타내었을 때, 최고차항의 차수를 출력한다. 단, 다항식으로 나타낼 수 없거나 최고차항의 차수가 3보다 크면 4를 출력한다.
import java.util.Scanner;
public class Step_4 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
long a = scan.nextLong();
System.out.println(a*(a-1)/2);
System.out.println(2);
}
}
A.
- 1~n-1까지의 회수만큼 반복이 발생하기 때문에 n(n-1)/2 만큼의 반복이 발생한다.
- n의 제곱이 가장 지수가 높기 때문에 최고차항 2 출력
5단계 알고리즘 수업 - 알고리즘의 수행 시간 5
- MenOfPassion 알고리즘은 다음과 같다.
MenOfPassion(A[], n) {
sum <- 0;
for i <- 1 to n
for j <- 1 to n
for k <- 1 to n
sum <- sum + A[i] × A[j] × A[k]; # 코드1
return sum;
}
- 첫째 줄에 코드1 의 수행 횟수를 출력한다.
- 둘째 줄에 코드1의 수행 횟수를 다항식으로 나타내었을 때, 최고차항의 차수를 출력한다. 단, 다항식으로 나타낼 수 없거나 최고차항의 차수가 3보다 크면 4를 출력한다.
import java.util.Scanner;
public class Step_5 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
long a = scan.nextLong();
System.out.println(a*a*a);
System.out.println(3);
}
}
A.
- n의 3제곱의 반복을 한다.
- 최고차항은 3제곱이니까 3
6단계 알고리즘 수업 - 알고리즘의 수행 시간 6
- MenOfPassion 알고리즘은 다음과 같다.
MenOfPassion(A[], n) {
sum <- 0;
for i <- 1 to n - 2
for j <- i + 1 to n - 1
for k <- j + 1 to n
sum <- sum + A[i] × A[j] × A[k]; # 코드1
return sum;
}
- 첫째 줄에 코드1 의 수행 횟수를 출력한다.
- 둘째 줄에 코드1의 수행 횟수를 다항식으로 나타내었을 때, 최고차항의 차수를 출력한다. 단, 다항식으로 나타낼 수 없거나 최고차항의 차수가 3보다 크면 4를 출력한다.
import java.util.Scanner;
public class Step_5 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
long a = scan.nextLong();
System.out.println(a*(a-1)*(a-2)/6);
System.out.println(3);
}
}
A.
- 1~n까지 숫자 중 중복 없이 3 가지 숫자를 뽑는 시행. 즉 순열과 조합의 종류를 나타낸다.
- 3Cn의 결과가 출력된다.
- 즉 (n)(n-1)(n-2)/123 이다.
7단계 알고리즘 수업 - 점근적 표기 1
- O(g(n)) = {f(n) | 모든 n ≥ n0에 대하여 f(n) ≤ c × g(n)인 양의 상수 c와 n0가 존재한다}
- 함수 f(n) = a1n + a0, 양의 정수 c, n0가 주어질 경우 O(n) 정의를 만족하는지 알아보자.
- 첫째 줄에 함수 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.Scanner;
public class Step_7 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n1=scan.nextInt();
int n0=scan.nextInt();
int c=scan.nextInt();
int a=scan.nextInt();
if(n1<=c&&(n1*a+n0)<=a*c) {
System.out.println(1);
} else {
System.out.println(0);
}
}
}
A.
- f(n)이 1차식이기 때문에 g(n)에는 n이 들어가야 한다.
- f(n)의 1차항 계수가 a1, g(n)쪽의 1차항 계수가 c인데 c보다 a1이 큰 경우 n이 커졌을 때 조건이 성립하지 않기 때문에 c가 a1보다 커야 한다.
- 그 이외에는 주어진 조건에 맞고, c가 a1보다 큰 경우에 1을 출력, 그 이외에 0을 출력하면 된다.
'백준' 카테고리의 다른 글
백준 닷컴 단계 별로 풀어보기 13단계 (1) | 2023.10.09 |
---|---|
백준 닷컴 단계 별로 풀어보기 12단계 (1) | 2023.10.08 |
백준 닷컴 단계 별로 풀어보기 10단계 (0) | 2023.10.06 |
백준 닷컴 단계 별로 풀어보기 9단계 (0) | 2023.10.06 |
백준 닷컴 단계 별로 풀어보기 8단계 (1) | 2023.10.05 |