시간 복잡도

Programming/Coding Problem

BOJ 24313번: 알고리즘 수업 - 점근적 표기 1

핵심 포인트 시간 복잡도 제출코드 a0, a1 = map(int, input().split()) c = int(input()) n0 = int(input()) flag = 1 for i in range(n0, 100): if a0 * i + a1 > c * i: flag = 0 break print(flag) 해설 다항식 $f(n)$의 계수인 $a_{0}$와 $a_{1}$ 그리고 상수 $c$와 $n_{0}$를 먼저 입력받습니다. 이 문제에서 확인해야할 것은 $n \ge n_{0}$에 대한 모든 $n$에 대해서 $f(n) \le c \times n$을 만족하는 지 확인해야합니다. 다만, 저희가 무한대의 수를 검증할 수는 없기 때문에 제한을 두어서 $n_{0}$부터 100까지 숫자에 대해서만 확인합니다. 이..

Programming/Coding Problem

BOJ 24267번: 알고리즘 수업 - 알고리즘의 수행 시간 6

핵심 포인트 시간 복잡도 제출코드 n = int(input()) ans = 0 for i in range(1, n - 1): ans += (n - (i + 1)) * (n - i) // 2 print(ans) print(3) 해설 이 문제를 풀 때 중요한 것은 주어진 문제 내의 코드를 분석하는 것 입니다. 주어진 MenOfPassion 함수는 2개의 변수 (A, n)를 입력으로 받습니다. 내부 알고리즘에서 중요한 부분은 반복문입니다. 보시면 3개의 반복문으로 구성되어 있음을 알 수 있습니다. 그리고 각 반복문 별로 서로 다른 횟수로 반복을 하기 때문에 이를 잘 파악해야합니다. 1). i = 1이라고 가정하면 j = 2 ~ n - 1까지 반복합니다. 그리고 다시 j = 2라고 하면 k = 3 ~ n까지 반..

Programming/Coding Problem

BOJ 24266번: 알고리즘 수업 - 알고리즘의 수행 시간 5

핵심 포인트 시간 복잡도 제출코드 n = int(input()) print(n ** 3) print(3) 해설 이 문제를 풀 때 중요한 것은 주어진 문제 내의 코드를 분석하는 것 입니다. 주어진 MenOfPassion 함수는 2개의 변수 (A, n)를 입력으로 받습니다. 내부 알고리즘에서 중요한 부분은 반복문입니다. 보시면 3개의 반복문으로 구성되어 있음을 알 수 있습니다. 그리고 각 반복문은 1부터 n까지 3번 반복되기 때문에 $n^{3}$번 함수를 실행합니다. 참고자료 및 그림출처 백준 코딩 문제

Programming/Coding Problem

BOJ 24265번: 알고리즘 수업 - 알고리즘의 수행 시간 4

핵심 포인트 시간 복잡도 제출코드 n = int(input()) print((n - 1) * n // 2) print(2) 해설 이 문제를 풀 때 중요한 것은 주어진 문제 내의 코드를 분석하는 것 입니다. 주어진 MenOfPassion 함수는 2개의 변수 (A, n)를 입력으로 받습니다. 내부 알고리즘에서 중요한 부분은 반복문입니다. 보시면 2개의 반복문으로 구성되어 있음을 알 수 있습니다. i가 1 ~ n - 1까지 반복한다고 가정했을 때 i = 1이면 j = 2 ~ n까지 반복하므로 총 (n - 2) + 1 = n - 1 번 반복합니다. i = 2 라면 j = 3 ~ n까지 반복하므로 총 (n - 3) + 1 = n - 2 번 반복합니다. 이 과정을 계속 수행하면 $(n - 1) + (n - 2) +..

Programming/Coding Problem

BOJ 24264번: 알고리즘 수업 - 알고리즘의 수행 시간 3

핵심 포인트 시간 복잡도 제출코드 n = int(input()) print(n ** 2) print(2) 해설 이 문제를 풀 때 중요한 것은 주어진 문제 내의 코드를 분석하는 것 입니다. 주어진 MenOfPassion 함수는 2개의 변수 (A, n)를 입력으로 받습니다. 내부 알고리즘에서 중요한 부분은 반복문입니다. 보시면 n번 만큼 내부에서 2번 반복되고 있음을 알 수 있습니다. 따라서, 내부적으로는 총 $n^{2}$번의 함수가 실행되고 있으며 시간복잡도는 $O(n^{2})$이 되므로 최대 차수는 2을 출력하면 됩니다. 참고자료 및 그림출처 백준 코딩 문제

Programming/Coding Problem

BOJ 24263번: 알고리즘 수업 - 알고리즘의 수행 시간 2

핵심 포인트 시간 복잡도 제출코드 n = int(input()) print(n) print(1) 해설 이 문제를 풀 때 중요한 것은 주어진 문제 내의 코드를 분석하는 것 입니다. 주어진 MenOfPassion 함수는 2개의 변수 (A, n)를 입력으로 받습니다. 내부 알고리즘에서 중요한 부분은 반복문입니다. 보시면 n번 만큼 내부에서 반복되고 있음을 알 수 있습니다. 따라서, 내부적으로는 총 n번의 함수가 실행되고 있으며 시간복잡도는 $O(n)$이 되므로 최대 차수는 1을 출력하면 됩니다. 참고자료 및 그림출처 백준 코딩 문제

Programming/Coding Problem

BOJ 24262번: 알고리즘 수업 - 알고리즘의 수행 시간 1

핵심 포인트 시간 복잡도 제출코드 n = int(input()) print(1) print(0) 해설 이 문제를 풀 때 중요한 것은 주어진 문제 내의 코드를 분석하는 것 입니다. 주어진 MenOfPassion 함수는 2개의 변수 (A, n)를 입력으로 받습니다. 내부 알고리즘은 크게 2가지 연산으로 구성됩니다. 첫번째는 주어진 n을 2로 나누어 i 변수에 담는 과정입니다. 두번째는 배열 A의 i 번째 값을 인덱싱 하는 과정입니다. 이 두 연산은 모두 1번만 수행하면 함수가 종료됩니다. 따라서, 첫번째 출력은 1입니다. 주어진 코드는 상수 시간 복잡도를 가지기 때문에 두번째 출력은 0 입니다. 참고자료 및 그림출처 백준 코딩 문제

Johns Hohns
'시간 복잡도' 태그의 글 목록