반응형

📌 퀴즈 개요
이 퀴즈는 "배열과 리스트" 개념을 이해하고 있는지 확인하기 위한 문제들로 구성되어 있습니다. 각 문제의 답을 선택하거나 직접 작성해보세요!
🧩 1. 개념 이해 문제
❓ 문제 1
배열(Array)과 리스트(List)의 주요 차이점이 아닌 것은?
- 배열은 연속된 메모리를 사용하지만, 리스트는 동적 메모리를 할당한다.
- 배열은 같은 타입의 데이터만 저장할 수 있지만, 리스트는 다양한 타입을 저장할 수 있다.
- 리스트는 정적 크기를 가지며, 크기를 변경할 수 없다.
- 배열은 크기 변경이 어렵지만, 리스트는 크기 조절이 가능하다.
❓ 문제 2
Python 리스트의 시간복잡도가 O(1) 이 아닌 연산은?
- 리스트의 마지막에 요소 추가 (append())
- 리스트의 특정 위치에 요소 삽입 (insert())
- 리스트의 길이 확인 (len())
- 리스트의 마지막 요소 삭제 (pop())
🧩 2. 실전 문제
❓ 문제 3
다음 코드 실행 결과는?
arr = [1, 2, 3, 4, 5]
arr.insert(2, 10)
print(arr)
- [1, 2, 3, 10, 4, 5]
- [1, 2, 10, 3, 4, 5]
- [10, 1, 2, 3, 4, 5]
- [1, 2, 3, 4, 5, 10]
❓ 문제 4
다음 코드의 실행 시간복잡도는?
arr = [1, 2, 3, 4, 5]
del arr[2]
- O(1)
- O(n)
- O(log n)
- O(n^2)
❓ 문제 5
리스트의 효율적인 삽입/삭제를 위해 collections.deque를 사용해야 하는 이유는?
- 리스트보다 메모리를 적게 사용하기 때문이다.
- 리스트보다 요소 접근 속도가 빠르기 때문이다.
- 양쪽 끝에서 O(1) 시간 내 삽입/삭제가 가능하기 때문이다.
- 리스트보다 요소 추가가 불가능하기 때문이다.
🏆 정답 및 해설
✅ 문제 1 정답: 3)
- 리스트는 동적 크기 조정이 가능하며, 크기가 고정되지 않습니다.
✅ 문제 2 정답: 2)
arr.insert(2, 10) # O(n) (요소 삽입 시 나머지 요소 이동 필요)
- insert()는 리스트 중간에 요소를 추가하면 나머지 요소들을 이동해야 하므로 O(n)입니다.
✅ 문제 3 정답: 2)
arr = [1, 2, 3, 4, 5]
arr.insert(2, 10) # 인덱스 2 위치에 10 삽입
print(arr) # [1, 2, 10, 3, 4, 5]
✅ 문제 4 정답: 2)
del arr[2] # 리스트에서 요소 삭제 시, 뒤 요소들이 앞으로 이동해야 함 (O(n))
- 리스트의 특정 요소를 삭제하면 뒤의 요소들이 앞으로 이동해야 하므로 O(n)입니다.
✅ 문제 5 정답: 3)
from collections import deque
dq = deque([1, 2, 3, 4])
dq.appendleft(0) # O(1)
dq.popleft() # O(1)
- deque는 양쪽 끝에서 O(1) 시간 내에 삽입/삭제가 가능합니다. 반면 리스트는 중간 삭제 시 O(n)이 걸립니다.
반응형
'IT > algorithm' 카테고리의 다른 글
[Python] 알고리즘 개념1 추가 퀴즈 - 시간복잡도 & 공간복잡도 (0) | 2025.02.20 |
---|---|
[Python] 알고리즘 개념4 퀴즈 - 재귀와 백트래킹 (0) | 2025.02.20 |
[Python] 알고리즘 개념4 - 재귀와 백트래킹 (0) | 2025.02.20 |
[Python] 알고리즘 개념2 퀴즈 - Big-O 표기법 심화 (0) | 2025.02.20 |
[Python] 알고리즘 개념1 퀴즈 - 시간복잡도 & 공간복잡도 (0) | 2025.02.20 |
[Python] 알고리즘 개념3 - 배열과 리스트 (0) | 2025.02.20 |
[Python] 알고리즘 개념2 - Big-O 표기법 심화 (0) | 2025.02.19 |
[Python] 알고리즘 개념1 - 시간복잡도 & 공간복잡도 (0) | 2025.02.19 |
댓글