[자료구조] 배열과 리스트

지니·2024년 7월 13일

자료구조

목록 보기
8/9
post-thumbnail

코딩 문제에 접근할 때, 배열과 리스트를 사용하는 경우가 많다.
그렇다면 배열과 리스트는 어떤 상황에서 사용하는게 좋을까?

이것에 대해 알아보기에 앞서 배열과 리스트가 무엇인지 간단하게 정리하자.

1. 배열


1-1. 배열 : 메모리의 연속되는 공간에 값이 있는 형태 (저장공간의 나열)

1-2. 배열의 특징

  • 배열은 인덱스를 통해서 접근이 가능
  • 선언한 자료형의 값만 저장 가능
  • 배열의 크기는 한 번 지정하면, 크기를 조정할 수 없음
  • 새로운 값을 삽입, 삭제하기 까다로움

2. 리스트


2-1. 리스트: 배열처럼 순서가 있는 데이터를 저장하기 위한 자료구조

2-2. 리스트의 특징

  • 선언할 때 크기를 지정하지 않아도 됨. 따라서 변하기 쉬운 데이터를 다룰 때 용이함
  • 데이터를 삽입하거나 삭제하는 속도가 빠름
  • LinkedList와 ArrayList가 많이 사용됨
    • LinkedList: 데이터가 데이터 부분과 주소 부분을 별도로 가지고 있음
    • ArrayList: 인덱스를 이용하여 값을 저장하고 관리함

3. 배열과 리스트 비교 **


위에서 간단하게 배열과 리스트의 특징을 정리했다. 그렇다면 우리는 어떤 상황에서 배열과 리스트를 사용하는게 좋을까?

배열(Array)은 데이터의 크기가 고정되어 있으며, 인덱스를 통해 빠르게 값에 접근해야 하는 경우에 사용

리스트(List)는 데이터의 크기가 가변적이고, 데이터의 삽입과 삭제가 자주 발생해야 하는 경우에 사용

이렇게 배열과 리스트의 간단한 개념을 알고, 둘을 어떤 상황에서 사용하는게 좋은지 정리해봤다.

실제로 문제를 풀 때, 배열과 리스트를 사용하는 경우가 정말 많았다. 이때 적절한 자료구조를 택해서 문제에 적용하는게 정말 중요했다. 그러니 위의 특징을 바탕으로, 문제에서 요구하는것을 잘 보고 적절한 자료구조를 택해야 한다.

참고 : 김종관, Do it! 알고리즘 코딩 테스트 (자바 편), 33~34쪽

0개의 댓글