배열(Array)
C
- C에서 배열은 연속적인 메모리에 데이터를 저장합니다.
- 배열의 크기는 선언 시에 고정됩니다.
- 데이터 타입이 동일한 원소만 저장할 수 있습니다.
- 배열 인덱스는 0부터 시작합니다.
- 배열의 크기를 런타임에서 동적으로 변경할 수 없습니다.
int arr[5] = {1, 2, 3, 4, 5};
Python
- Python의 리스트는 동적 배열로 구현되어 있습니다.
- 크기를 동적으로 변경할 수 있으며, 다양한 타입의 원소를 저장할 수 있습니다.
- 슬라이싱, 추가, 삭제 등의 다양한 연산을 기본적으로 지원합니다.
arr = [1, 2, 3, 4, 5]
문자열(String)
C
- C에서 문자열은 문자의 배열로 처리됩니다.
- 문자열의 끝은 널 문자(
\0
)로 표시됩니다.
- 문자열은 불변(Immutable)이 아니며, 메모리에 직접 접근하여 변경할 수 있습니다.
char str[] = "Hello";
Python
- Python에서 문자열은 불변(Immutable)입니다.
- 문자열에 대한 다양한 메서드와 연산을 지원합니다 (예:
len()
, str.upper()
, str.replace()
등).
- 인덱스를 통한 접근 및 슬라이싱이 가능합니다.
str = "Hello"
요약
- C는 더 낮은 수준의 메모리 제어를 할 수 있지만, 그만큼 복잡성이 증가합니다.
- Python은 편의성과 다양한 기능을 제공하지만, 실행 속도가 C보다 느리고 메모리 효율성이 떨어질 수 있습니다.
- 배열과 문자열을 다루는 알고리즘 문제에 접근할 때 언어의 이러한 특성을 이해하고 있으면 좋습니다.