본문 바로가기
자료구조 알고리즘/자료구조

자료구조 - 배열 (Array)

by Dream Jin 2022. 9. 9.

언어는 python을 사용하였습니다.

1. 배열(Array)

  • 데이터를 나열하고, 각 데이터 인덱스에 대응하도록 구성하는 데이터 구조
  • 파이썬에서는 리스트(list)와 튜플(tuple)로 구현한다.
  • 같은 종류의 데이터를 효율적으로 관리하고, 순차적으로 저장하기 위해 사용
  • 또한 다른 언어의 경우 배열의 데이터 타입을 정해주어야 하지만, 파이썬의 경우 하나의 배열에 여러가지 데이터 타입이 올 수 있다.

특징

  • (장점) 인덱스 번호로 데이터에 접근할수 있기 때문에 빠르다.
  • (단점) 미리 길이를 설정해야 하므로 데이터의 추가/삭제가 어렵다.
    but 파이썬에서는 길이를 미리 정할 필요가 없이 가변적 이다.

예시

# 1차원 배열: 리스트로 구현시
data_list = [1, 2, 3, 4, 5]
# 2차원 배열: 리스트로 구현시
data_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

리스트와 튜플의 차이

  • 리스트는 []으로 둘러 싸이지만, 튜플은()로 둘러싸인다.
  • 리스트와 튜플은 유사하지만, 튜플의 경우 수정이 불가능 하다.

슬라이스식으로 원소에 접근하기

  • 리스트 또는 튜플의 원소 일부를 연속해서 또는 일정한 간격으로 꺼내 새로운 리스트 또는 튜플을 만드는 것을 슬라이스(slice)라고 한다.

    패턴 설명
    s[i:j] s[i] 부터 s[j-1] 까지 나열한다.
    s[:] 리스트 s의 원소를 모두 출력한다.
    s[:n] 리스트 s의 원소 중 맨 앞부터 n개까지 출력한다.
    s[i:] 리스트 s의 원소 중 s[i]부터 맨 끝까지 출력한다.
    s[::-1] 리스트 s의 원소 중 맨 끝부터 전부 출력한다.

    References

    Do it! 점프 투 파이썬
    Do it! 자료구조와 함께 배우는 알고리즘 입문 파이썬편
    패스트 캠퍼스

댓글