1. 자료구조
자료 구조는 컴퓨터에서 정보를 정리하고 저장하는 방법입니다. 마치 우리가 물건을 정리할 때 서랍장, 책장, 옷장 등을 사용하는 것처럼, 컴퓨터도 정보를 효율적으로 관리하기 위해 여러 가지 방법을 사용합니다.
2. 배열 (array)
배열은 가장 기본적인 자료 구조 중 하나로 같은 종류의 여러 데이터를 순서대로 나열한 것입니다.
실생활에서의 배열:
- 책장에 책을 순서대로 꽂아놓은 것
- 달력의 날짜들
- 학교 교실의 책상 배치
배열에는 객체가 저장되며 배열에 저장된 객체 하나하나를 원소(element)라고 합니다. 각 원소는 0, 1, 2, ∙∙∙순으로 인덱스(index)를 부여 받습니다. 배열은 음수 인덱스(negative list index)를 사용할 수도 있으며 슬라이스(slice)라는 기능으로 원하는 구간의 원소를 추출할 수도 있습니다.
원소 (Element):
원소는 배열 안에 들어있는 각각의 물건이라고 생각하면 돼요. 예를 들어, 과일 바구니를 배열이라고 생각해보면, 그 안에 있는 사과, 바나나, 오렌지 각각이 원소입니다.
과일_바구니 = ['사과', '바나나', '오렌지']
인덱스 (Index):
인덱스는 배열 안에서 각 원소의 위치를 나타내는 번호입니다. 컴퓨터는 0부터 숫자를 세기 시작해요.
print(과일_바구니[0]) # '사과' 출력
print(과일_바구니[1]) # '바나나' 출력
print(과일_바구니[2]) # '오렌지' 출력
음수 인덱스 (Negative Index):
음수 인덱스를 사용하면 배열의 뒤에서부터 원소를 셀 수 있어요. -1은 맨 뒤의 원소, -2는 뒤에서 두 번째 원소를 가리킵니다.
print(과일_바구니[-1]) # '오렌지' 출력 (맨 뒤)
print(과일_바구니[-2]) # '바나나' 출력 (뒤에서 두 번째)
슬라이스 (Slice):
숫자 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(숫자[2:5]) # [2, 3, 4] 출력
print(숫자[:3]) # [0, 1, 2] 출력 (처음부터 3번째 전까지)
print(숫자[7:]) # [7, 8, 9] 출력 (7번째부터 끝까지)
print(숫자[::2]) # [0, 2, 4, 6, 8] 출력 (처음부터 끝까지 2칸씩 건너뛰며)
단순 변수와 배열의 차이:
- 저장할 수 있는 값의 개수
- 단순 변수: 한 개의 값만 저장
- 배열: 여러 개의 값을 저장
- 접근 방법
- 단순 변수: 변수 이름으로 직접 접근
- 배열: 인덱스를 사용해 각 원소에 접근
- 데이터 관리
- 단순 변수: 각 데이터를 개별적으로 관리
- 배열: 관련된 데이터를 그룹으로 관리
- 연산과 기능
- 단순 변수: 기본적인 연산만 가능
- 배열: 정렬, 검색, 추가, 삭제 등 다양한 작업 가능
배열의 주요 특징:
- 순서가 있어요: 각 항목은 특정 위치(인덱스)를 가집니다. 첫 번째 항목은 0번, 두 번째는 1번, 이렇게 순서대로 번호가 매겨져요.
- 빠른 접근: 인덱스를 알면 아주 빠르게 원하는 데이터를 찾을 수 있습니다.
- 같은 종류의 데이터: 보통 한 배열에는 같은 종류의 데이터만 저장합니다. 예를 들어, 숫자만 있는 배열(int형), 문자열만 있는 배열(float형) 등이 있습니다. (파이썬은 다른 종류의 데이터도 함께 저장할 수 있지만, 대부분의 경우 같은 종류를 저장해요.)
- 크기가 정해져 있어요: 대부분의 프로그래밍 언어에서 배열은 처음에 크기를 정해두고 사용합니다. (파이썬은 크기를 자유롭게 바꿀 수 있지만, 다른 언어에서는 크기가 고정될 수 있어요.)
'TIL' 카테고리의 다른 글
[TIL] 자료 구조와 배열 (Python) 3편 - 인덱스싱, 슬라이싱 (1) | 2024.09.09 |
---|---|
[TIL] 자료 구조와 배열 (Python) 2편 - 리스트와 튜플 (3) | 2024.09.09 |
[TIL] 파이썬에서 입력 - input()은 string 이다 (0) | 2024.09.06 |
[TIL] 좋아요 버튼 누르면 버튼 컬러가 변경되는 기능 구현하기 (1) | 2024.08.31 |
[TIL] 자바스크립트(JavaScript) 기초 개념 - 변수, 블록 스코프, 함수 스코프, 호이스팅, 일시적 사각지대 (1) | 2024.08.27 |