inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

코딩테스트 [ ALL IN ONE ]

[코테 적용] 👉 LIFO 2번 째 문제 - 시간복잡도 추가 설명

시간복잡도 관련 질문입니다.

해결된 질문

362

gurrl905

작성한 질문수 1

1

위 코드에서 for문이 n번 만큼 반복되고 그 안에 있는 while문이 도는 횟수의 총 합이 n번이라고 하셨는데 그렇다면 위 코드의 시간복잡도는 [for문 시간복잡도: o(n)] * [while문의 시간 복잡도 : {o(n-1) + o(n-3) + ... o(1)} ]= o(상수 * n) 이렇게 이해하면 되는 걸까요?

python 코딩-테스트 알고리즘

답변 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