고양이와 코딩하기

자료구조 - Array 알아보기 본문

D E V E L O P E R 💻/Today I Learned

자료구조 - Array 알아보기

dj-1087 2021. 11. 3. 11:57
반응형

개념 정리
예제(with Python)
파이썬 추가 사용 팁
참고 자료


Array - 배열

각 데이터를 순서대로(인덱스에 대응하도록) 나열한 데이터 구조

장점과 단점

장점

  • 같은 종류의 데이터를 효율적으로 관리할 수 있음
  • 빠른 접근이 가능

단점

  • 데이터의 추가가 어려움 <- 처음 배열을 만들 때 배열의 길이를 정하고, 나중에 바꿀 수 없다
  • 데이터의 삭제가 어려움 <- 배열의 중간 부분의 데이터를 지울 때, 뒤의 데이터들의 순서(인덱스)를 하나하나 앞으로 이동시켜서 빈 자리를 채워줘야 한다.

*단 파이썬의 경우 List의 내장함수에 의해 편리하게 추가/삭제가 가능하다!

-> list 길이를 지정할 필요 없음
-> 삭제시 빈자리를 채울 필요 없음
-> 다양한 자료형을 한 리스트에 담을 수 있음

시간 복잡도

  • 데이터 추가/삭제: O(n)
  • 데이터 탐색: O(1)


Example - 1차원 배열

arr = [1,2,3,4,5]
arr
[1, 2, 3, 4, 5]

Example - 2차원 배열

arr2 = [[1,2,3],[4,5,6],[7,8,9]]
arr2
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]


파이썬 팁

import random

# 리스트 안에 for문 사용하기
arr3 = [1 for i in range(10)]
print("arr3:",arr3)
print()

# sort 함수
arr4 = random.sample(range(20),5)
print("arr4_init:",arr4)
arr4.sort(reverse=True)
print("arr4_reversed:",arr4)
print()

# lamda 사용법 (2번째 숫자끼리 비교)
arr5 = [[1,6,6],[2,2,9],[3,4,3]]
arr5 = sorted(arr5, key=lambda x : x[1])
print("arr5:",arr5)
arr3: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

arr4_init: [13, 12, 14, 10, 17]
arr4_reversed: [17, 14, 13, 12, 10]

arr5: [[2, 2, 9], [3, 4, 3], [1, 6, 6]]


참고 자료

반응형
Comments