데브코스 TIL/자료구조, 알고리즘
2강: 선형 배열(Linear Array)
예니ㅣ
2023. 10. 16. 16:57
강의
배열은 원소들을 순서대로 늘어놓은 것입니다.
python에서는 리스트를 이용하여 배열을 나타냅니다.
리스트의 index는 0부터 시작합니다.
리스트는 변형할 수 있습니다.
가장 손쉽게 할 수 있는 연산은 상수 시간 O(1)이 걸립니다.
- 원소 맨 뒤에 추가하기 : list.append()
- 마지막 원소 제거하기 : list.pop()
리스트의 크기에 의해 연산 시간이 선형 시간 O(n)으로 영향을 받기도 합니다.
- 원소 삽입하기 : list.insert()
- 원소 삭제하기 : list.del()
index() 함수를 이용하면 원소의 위치를 찾을 수 있습니다.
2강 실습: (1) 리스트에 새로운 요소 삽입하기
⭐ 직관적 풀이 : 원소를 맨 뒤에 삽입한 후 재정렬하는 방법!
def solution(L, x):
L.append(x)
L.sort()
return L
⭐ 힌트 풀이 : 원소가 들어가야 할 위치를 먼저 찾은 후에 insert를 이용하는 방법!
⭐ 두 방법 모두 가능하지만 리스트의 크기가 커질 경우를 대비하여 시간 복잡도도 고려하는 문제!
2강 실습: (2) 리스트에서 원소 찾아내기
⭐ 직관적 풀이 : 반복문을 이용하여 단순 비교하는 방법!
def solution(L, x):
ans = []
for l in range(len(L)):
if L[l] == x:
ans.append(l)
if ans == []:
ans = [-1]
return ans
⭐ 힌트 풀이 : index()와 슬라이싱 활용하는 방법!