Computer Science
List (리스트)
리스트란? 리스트(list)는 컴퓨터 과학에서 같은 값이 한 번 이상 존재할 수 있는 일련의 값이 모여있는 추상적 자료형이다. 리스트는 유한수열(finite sequence)을 프로그래밍적으로 표현한 것이며 시퀀스(sequence)라고도 부른다. 리스트의 인스턴스는 무한 시퀀스의 수학 개념을 컴퓨터 상에 표현한 것이며 잠재적으로 무한인 리스트는 스트림과 동격이다. [1]:§3.5 Abelson, Harold; Sussman, Gerald Jay (1996). 《Structure and Interpretation of Computer Programs》. MIT Press. 리스트는 다른 값들을 포함할 수 있기 때문에 컨테이너의 기초적인 한 예로 간주된다. 같은 값이 여러 번 발생하면 각각의 발생한 건들은 ..
Array (배열)
배열이란? 같은 타입의 데이터를 나열한 선형 자료구조이다(sequence container) 연속된 메모리 공간에 순차적으로 저장한다. 배열의 크기가 고정되어 있고, 선언 시 배열의 크기를 정하고 이를 변경할 수 없다. 장점 구현이 쉽다. 인덱스를 이용해 접근이 가능해 검색 성능이 좋다. 데이터의 크기가 확정적일 때 배열을 사용하는 것이 메모리나 처리속도 면에서 좋다. 연속된 메모리 공간에 존재하기 때문에 관리하기가 편하다. 단점 삽입과 삭제가 어렵고 오래 걸린다. 원소를 삽입하거나 삭제할 경우, 다음 항목의 모든 요소를 이동시켜야 한다. (연속된 메모리 공간) 이를 위한 연산작업이 수행되어 비효율적이다. 자료의 수에 비례하여 성능이 떨어지게 된다. 배열의 크기를 바꿀 수 없다. 크게 잡을 경우 메모리가..
Data Structure란?
자료구조(資料構造, 영어: data structure)는 컴퓨터 과학에서 효율적인 접근 및 수정을 가능케 하는 자료의 조직, 관리, 저장을 의미한다. 더 정확히 말해, 자료 구조는 데이터 값의 모임, 또 데이터 간의 관계, 그리고 데이터에 적용할 수 있는 함수나 명령을 의미한다. (위키백과) 쉬운 예시로 생활코딩에서의 설명 내 식으로을 적어보자. 자료구조 (Data Structure)란? A와 B란 사람이 존재합니다. A는 미니멀리스트라서 집안 살림이 매우 적습니다. 그래서 집에 양말이나 옷가지등의 물건을 흩뿌려 놓아도 쉽게 찾을 수 있습니다. 한편 B는 저장강박증이 있어 온갖 잡동사니가 집에 굴러다닙니다. B도 마찬가지로 양말이나 옷가지등의 물건이 흩뿌려져 있는데 아침에 출근할 때 마다 이를 찾기가 매..