동적배열 7:35
340
2 asked
안녕하세요!
동적배열 강의관련 질문드립니다.
정적배열과 동적배열의 시간복잡도를 비교하는 표에서,
정적배열의 데이터 추가/삽입(insert_back/insert_at)이 이해가 안 되어 질문드립니다.
정적배열은 선언과 동시에 크기가 정해지는데, 이미 초기화가 된 상태에서 추가나 삽입은 안 되지 않나요?
혹시 크기만 선언된 비어있는 정적배열을 말하는건가 생각해보니, 비어있는거면 insert_at이나 delete_at을 할 때도 기존 데이터를 옮길 필요가 없으니 O(n)이 아니라 O(1)이지 않나싶어서 그건 아닌 것 같고,
아니면 크기보다 데이터가 덜 들어간 케이스에서 저런 시간복잡도가 나오는건가요? ㅠㅠ 그렇다면 저게 다 이해가 됩니다.
그런데 아무리 그래도 정적배열에서는 추가/삽입의 한계가 있지 않나요? 어떤 조건에서 저게 되는건지 알려주세요ㅠㅠ
Answer 1
1
안녕하세요 성실한 멸치님!
이게 조금 혼란이있을법 하네요. 사실 정적 배열은 클래스로 구현된 자료구조가 아니라서 보통 메서드가 없죠. 그래서 선언 및 초기화나, 수정, 정도만 가능하죠. 그래서 성실한 멸치님 말씀대로 insert_at, delete_at은 없는게 맞습니다.
저는 여러 상황을 설명해드리기 위해 일반적으로 볼 수 없는 정적배열을 이용하여 만든 list 클래스를 가정하고 설명했던 겁니다.
결국 Array List와 Linked List 두 가지를 설명드려야되는데, 모든 언어에서 구현된 Array List는 모두 Dynamic Array로 구현된 Array List 이거든요. 저는 요기에 Dynamic Array대신 Static Array를 살짝 껴놓고 비교를 해놓은 겁니다. 그래서 성실한멸치님말대로 저런 상황은 볼 수 없는게 맞아요.
결론: Static Array로 구현된 Array List 클래스를 가정하고 설명을 드린것입니다.
혹시 질문에 대한 답이 됐을까요??
더 궁금한 점 있으시면 언제든지 질문 남겨주세요~
노션 공유 링크
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

