inflearn logo
강의

Course

Instructor

Coding Test [ ALL IN ONE ]

Dynamic Array

동적배열 7:35

340

sooinchoi

2 asked

1

안녕하세요!

동적배열 강의관련 질문드립니다.

정적배열과 동적배열의 시간복잡도를 비교하는 표에서,

정적배열의 데이터 추가/삽입(insert_back/insert_at)이 이해가 안 되어 질문드립니다.

정적배열은 선언과 동시에 크기가 정해지는데, 이미 초기화가 된 상태에서 추가나 삽입은 안 되지 않나요?

혹시 크기만 선언된 비어있는 정적배열을 말하는건가 생각해보니, 비어있는거면 insert_at이나 delete_at을 할 때도 기존 데이터를 옮길 필요가 없으니 O(n)이 아니라 O(1)이지 않나싶어서 그건 아닌 것 같고,

아니면 크기보다 데이터가 덜 들어간 케이스에서 저런 시간복잡도가 나오는건가요? ㅠㅠ 그렇다면 저게 다 이해가 됩니다.

그런데 아무리 그래도 정적배열에서는 추가/삽입의 한계가 있지 않나요? 어떤 조건에서 저게 되는건지 알려주세요ㅠㅠ

algorithm 코딩-테스트 코테 준비 같이 해요! 알고리즘 python

Answer 1

1

nossi

안녕하세요 성실한 멸치님!

 

이게 조금 혼란이있을법 하네요. 사실 정적 배열은 클래스로 구현된 자료구조가 아니라서 보통 메서드가 없죠. 그래서 선언 및 초기화나, 수정, 정도만 가능하죠. 그래서 성실한 멸치님 말씀대로 insert_at, delete_at은 없는게 맞습니다.

저는 여러 상황을 설명해드리기 위해 일반적으로 볼 수 없는 정적배열을 이용하여 만든 list 클래스를 가정하고 설명했던 겁니다.

 

결국 Array List와 Linked List 두 가지를 설명드려야되는데, 모든 언어에서 구현된 Array List는 모두 Dynamic Array로 구현된 Array List 이거든요. 저는 요기에 Dynamic Array대신 Static Array를 살짝 껴놓고 비교를 해놓은 겁니다. 그래서 성실한멸치님말대로 저런 상황은 볼 수 없는게 맞아요.

 

결론: Static Array로 구현된 Array List 클래스를 가정하고 설명을 드린것입니다.

 

혹시 질문에 대한 답이 됐을까요??

더 궁금한 점 있으시면 언제든지 질문 남겨주세요~

 

0

sooinchoi

답변이 도움이 되었습니다. 감사합니다^_^

노션 공유 링크

0

83

2

수업 중간에 내주신 문제는 해답을 알 수 없는걸까요?

0

73

2

최신 강의와 비교

0

79

2

Min Cost Climbing stairs 질문

0

74

2

노션 공유 부탁드립니다!

1

84

2

for 문에 sort 함수 를 사용하면

1

85

2

노션 공유 부탁드립니다.

0

100

2

디스코드가 올바르지 않다고 뜹니다..!

0

103

1

그래프

0

94

2

노션 공유

1

121

2

시간복잡도 질문

2

121

3

11강 질문

1

74

2

노션 공유 부탁드립니다

0

81

2

linkedList - BrowserHistory 코드 질문

0

71

1

list1.append(list2)와 list1.append(list2[:])의 차이가 무엇인가요?

1

164

1

라이브러리 사용

1

133

2

문제 교재는 따로 없는 거 맞나요?

1

199

2

LCA 관련해서 질문이 있습니다.

1

116

2

[Unique Paths] 완전탐색 / DP (후반부)

0

101

1

dp 계단오르기최소비용질문입니다.

0

106

1

Dynamic Array 의 size 정보가 저장되는 곳

2

158

2

노션공유가 안된듯 합니다

1

160

2

[코테 적용] 👉 [3번 문제] 완전탐색 (DFS, BFS) (전반부)

1

117

1

강의자료 만들 때 사용하신 프로그램이 뭘까요?

1

195

1