시간복잡도 관련 질문입니다.
위 코드에서 for문이 n번 만큼 반복되고 그 안에 있는 while문이 도는 횟수의 총 합이 n번이라고 하셨는데 그렇다면 위 코드의 시간복잡도는 [for문 시간복잡도: o(n)] * [while문의 시간 복잡도 : {o(n-1) + o(n-3) + ... o(1)} ]= o(상수 * n) 이렇게 이해하면 되는 걸까요?
답변 1
0
안녕하세요 gurrl905님
맞습니다 그런 의미로 해석하시면 될 것 같아요. 좀 더 자세히 써보면
for 반복 횟수 - while속의 코드 실행 횟수
1번 째 반복: 3번
2번 째 반복: 0번
3번 째 반복: 0번
4번 째 반복: 1번
5번 째 반복: 4번
... : ....
n-1번 째 반복: 1번
n번 째 반복: 0번
for이 n 번반복되면서 while속 코드가 실행되는 횟수는 3번 + 0번 + 0번 + 1번 + 4번 + ... + 1번 + 0번 = n번
이렇게 되는거에요.
보통 시간복잡도가 O(n^2)으로 되려면
for 반복 횟수 - while속의 코드 실행 횟수
1번 째 반복: n번
2번 째 반복: n번
3번 째 반복: n번
4번 째 반복: n번
5번 째 반복: n번
... : ....
n-1번 째 반복: n번
n번 째 반복: n번
이렇게 되거나
for 반복 횟수 - while속의 코드 실행 횟수
1번 째 반복: n-1번
2번 째 반복: n-2번
3번 째 반복: n-3번
4번 째 반복: n-4번
5번 째 반복: n-5번
... : ....
n-1번 째 반복: 1번
n번 째 반복: 0번
이런 경우에 n^2으로 계산이 됩니다.
혹시 차이점 이해하셨나요? gurrl905님께서 적어주신거는 O(n^2)일 가능성이 높은것 같아요.
더 궁금한거 있으면 편하게 질문 주세요 :)
노션 공유 링크
0
87
2
수업 중간에 내주신 문제는 해답을 알 수 없는걸까요?
0
77
2
최신 강의와 비교
0
85
2
Min Cost Climbing stairs 질문
0
76
2
노션 공유 부탁드립니다!
1
88
2
for 문에 sort 함수 를 사용하면
1
90
2
노션 공유 부탁드립니다.
0
104
2
디스코드가 올바르지 않다고 뜹니다..!
0
107
1
그래프
0
98
2
노션 공유
1
123
2
시간복잡도 질문
2
125
3
11강 질문
1
78
2
노션 공유 부탁드립니다
0
84
2
linkedList - BrowserHistory 코드 질문
0
76
1
list1.append(list2)와 list1.append(list2[:])의 차이가 무엇인가요?
1
168
1
라이브러리 사용
1
136
2
문제 교재는 따로 없는 거 맞나요?
1
202
2
LCA 관련해서 질문이 있습니다.
1
118
2
[Unique Paths] 완전탐색 / DP (후반부)
0
108
1
dp 계단오르기최소비용질문입니다.
0
109
1
Dynamic Array 의 size 정보가 저장되는 곳
2
161
2
노션공유가 안된듯 합니다
1
163
2
[코테 적용] 👉 [3번 문제] 완전탐색 (DFS, BFS) (전반부)
1
122
1
강의자료 만들 때 사용하신 프로그램이 뭘까요?
1
204
1





