[algorithm] 백준 단계별 문제 풀이 (시간복잡도 2탄)
안녕하세요. 심심한 코딩쟁이입니다.
오늘도 저번 시간에 이어 시간복잡도에 대한 문제들로 구성해 보았습니다.
파이썬3 를 사용해 문제 풀이를 진행하겠습니다.
문제마다 링크를 걸어두었으니 문제를 살펴보시고 문제를 푼 다음에 저와
풀이를 비교해 보시는 걸 추천드립니다.
차근차근 풀어봅시다.
백준 BAEKJOON 24266
https://www.acmicpc.net/problem/24266
24266번: 알고리즘 수업 - 알고리즘의 수행 시간 5
오늘도 서준이는 알고리즘의 수행시간 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 입력의 크기 n이 주어지면 MenOfPassion 알고리즘 수행 시
www.acmicpc.net
문제 해석
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;
}
위 알고리즘의 코드 실행 횟수와 시간복잡도를 구하시오.
풀이
print(int(input()) ** 3)
print(3)
풀이 해석 및 팁
코드가 실행되는 횟수는 총 n의 3제곱 번 만큼 실행되므로 주어지는 수에 3제곱을 출력해줍니다.
알고리즘의 시간복잡도는 O(n^3)으로 표기 가능하므로 두 번째 줄에는 3을 출력해줍니다.
백준 BAEKJOON 24267
https://www.acmicpc.net/problem/24267
24267번: 알고리즘 수업 - 알고리즘의 수행 시간 6
오늘도 서준이는 알고리즘의 수행시간 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 입력의 크기 n이 주어지면 MenOfPassion 알고리즘 수행 시
www.acmicpc.net
문제 해석
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;
}
위 알고리즘의 코드 실행 횟수와 시간복잡도를 구하는 문제입니다.
풀이
n = int(input())
print(n * (n-1) * (n-2) // 6)
print(3)
풀이 해석 및 팁
숫자가 3이 주어질 땐 코드가 1번 수행되고 4가 주어질 땐 4번 수행됩니다.
이처럼 간단한 수를 넣어보면서 수식을 유추해 보면 첫 번째 출력물의 답을 알 수 있게됩니다.
두 번째 출력은 최고차항의 차수는 3이므로 3을 출력합니다.
백준 BAEKJOON 24313
https://www.acmicpc.net/problem/24313
24313번: 알고리즘 수업 - 점근적 표기 1
f(n) = 7n + 7, g(n) = n, c = 8, n0 = 1이다. f(1) = 14, c × g(1) = 8이므로 O(n) 정의를 만족하지 못한다.
www.acmicpc.net
문제 해석
문제에서 주어진 조건들을 그대로 코드로 옮겨서 정의를 만족하는지 판별하는 문제
풀이
a1, a0 = map(int,input().split())
c = int(input())
n0 = int(input())
print(1 if a1 * n0 + a0 <= c * n0 and a1 <= c else 0)
풀이 해석 및 팁
print 문에서 if else 삼항연산자를 사용합니다.
문제에서 주어진 조건을 만족하는지 판단하기 위해 조건을 if와 else 사이에 작성하고
if 왼쪽에는 조건을 만족할 때의 원하는 출력 값을 적고
else 오른쪽에는 조건을 만족하지 못 할 때 출력할 값을 적으면 됩니다.
여기까지 백준 단계별 문제 풀이 시간복잡도 2탄의 풀이였습니다.
궁금하신 점이나 도움이 필요하신 부분이 있다면 댓글로 남겨주세요.
감사합니다.
'programming > algorithm' 카테고리의 다른 글
[algorithm] 백준 단계별 문제 풀이 (집합과 맵 2탄) (0) | 2023.03.25 |
---|---|
[algorithm] 백준 단계별 문제 풀이 (집합과 맵 1탄) (0) | 2023.03.24 |
[algorithm] 백준 단계별 문제 풀이 (시간복잡도 1탄) (0) | 2023.03.20 |
[algorithm] 백준 단계별 문제 풀이 (약수, 배수와 소수 2탄) (0) | 2023.03.15 |
[algorithm] 백준 단계별 문제 풀이 (약수, 배수와 소수 1탄) (0) | 2023.03.14 |