데브코스 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()와 슬라이싱 활용하는 방법!