[BOJ / Python] 24267 알고리즘 수업 - 알고리즘의 수행 시간6

도니·2023년 4월 12일
0

BOJ / Python

목록 보기
74/104
post-thumbnail

문제

백준 24267 알고리즘 수업 - 알고리즘의 수행 시간6

코드

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

n = int(input())
print(int((n-2)*(n-1)*n/6))
print(3)

코드 설명
코드 1, sum <- sum + A[i] x A[j] x A[k]이 세 개의 for문 안에 들어있다.
첫 번째 for문은 1부터 n-2까지, 두 번째 for문은 i+1부터 n-1까지, 세 번째 for문은 j+1부터 n까지 반복한다.

k=1n2(x=1kx)=k=1n2(k×(k+1)2)=k=1n2(12(k2+k))=12(k=1n2k2+k=1n2k)=12{(n2)(n1)(2n3)6+(n2)(n1)2}=(n2)(n1)4(2n33+1)=(n2)(n1)4×2n3=(n2)(n1)n6\small \displaystyle \sum_{k=1}^{n-2}(\sum_{x=1}^{k}{x})=\sum_{k=1}^{n-2}(\frac {k\times (k+1)}2) = \sum_{k=1}^{n-2}(\frac{1}{2}(k^2 + k)) = \frac{1}{2}(\sum_{k=1}^{n-2} k^2 + \sum_{k=1}^{n-2} k) \\ = \frac{1}{2}\{ \frac{(n-2)(n-1)(2n-3)}6 + \frac{(n-2)(n-1)}{2} \} \\ = \frac{(n-2)(n-1)}{4} ( \frac{2n-3}{3} + 1 ) \\ = \frac{(n-2)(n-1)}{4} \times \frac{2n}{3} \\ = \frac{(n-2)(n-1)n}{6}

즉, 총 수행횟수는 (n-2)*(n-1)*n/6 이다.
따라서 코드 1의 수행횟수는 (n-2)(n-1)n/6 번이고, 최고차항의 차수는 2이다.

profile
안녕하세요, 🌱새싹개발자 도니💡입니다!

0개의 댓글

관련 채용 정보