자료 구조 6

동적 배열에서 삭제 연산, 어떻게 동작할까?

리스트(동적 배열)에서 어떤 데이터를 삭제하고 싶을 때, 단순히 "지워!"만 하면 될 것 같지만,실제로는 그 뒤에 생각보다 많은 작업이 일어나고 있습니다.이번 글에서는 삭제 연산이 어떻게 동작하는지,그리고 삭제 위치에 따라 성능이 얼마나 달라지는지를 간단하게 살펴볼게요. 삭제 연산은 어떻게 작동할까?예를 들어 리스트에 [2, 3, 5, 7, 11]이 있다고 해보죠.여기서 인덱스 1에 있는 3을 삭제하고 싶다면?# 1단계: 3을 지우는 게 아니라, 그 뒤에 있는 값을 앞으로 당긴다!list[1] ← list[2] # 5list[2] ← list[3] # 7list[3] ← list[4] # 11# 2단계: 리스트의 길이를 1 줄인다! 결과적으로 리스트는 이렇게 바뀝니다 → [2, 5, 7, 11] 삭..

자료 구조 2025.04.22

파이썬 리스트는 왜 어떤 자료형이든 담을 수 있을까?배열이란?

– C 배열 vs 파이썬 리스트, 레퍼런스 기반 구조의 이해프로그래밍 언어에는 다양한 데이터 구조가 존재하지만,그 중 **리스트(배열)**는 거의 모든 언어에서 쓰이는 대표 구조죠.하지만 파이썬을 배우다 보면 이런 의문이 생깁니다:“어떻게 파이썬 리스트는 숫자, 문자열, 불리언까지 섞어서 저장할 수 있지?”“C 언어에서는 다 같은 타입만 넣어야 하는데?” 이 차이는 바로 "레퍼런스 기반 구조" 때문입니다. C의 배열은 "같은 크기, 같은 타입"만 저장 가능C에서는 배열을 선언할 때 크기와 타입이 고정되어야 합니다.int numArray[4];numArray[0] = 2;numArray[1] = 3;numArray[2] = 5;numArray[3] = 7;배열은 **정수형(int)**만 저장메모리 상에 연..

자료 구조 2025.04.11

파이썬에서 변수는 "값"이 아니라 "위치"를 가리킨다?

- Aliasing과 메모리 주소 이야기프로그래밍을 하다 보면 같은 데이터를 두 개의 변수로 다룰 때가 있다.이때 단순히 "복사했다"고 생각하면 위험할 수 있다.왜냐면 파이썬에서는 변수가 실제 데이터를 복사하는 게 아니라, 메모리 주소(참조)를 공유할 수 있기 때문이다.이걸 **Aliasing(에일리어싱)**이라고 한다.  예제로 살펴보자# 리스트를 정의한다list1 = [1, 2]list3 = [1, 2, 3]# list1을 list2에 할당list2 = list1# 메모리 주소 출력print(id(list1)) # 예: 140657629409160print(id(list2)) # 예: 140657629409160print(id(list3)) # 예: 140657629409096 무슨 일이 일어난..

자료 구조 2025.04.09

파이썬 변수는 "값"이 아니라 "값을 가리키는 것"이다!

프로그래밍을 처음 배우면 가장 먼저 접하게 되는 것이 바로 **변수(variable)**이다.그런데 x = 95처럼 코드를 작성할 때, 많은 사람들이 흔히 이렇게 이해하곤 한다:“x는 95다!” ❌하지만 정확한 개념은 다르다.“x는 95를 가리킨다!” ⭕  변수란?x = 95이 코드는 메모리에 95를 저장하고, 그 주소를 x라는 이름으로 **가리킨다(reference)**는 의미다.즉, 변수 x는 95 그 자체가 아니라, 95가 저장된 메모리 위치(주소)를 가리키는 포인터 역할을 하는 셈이다. 레퍼런스(reference)란?데이터에 접근할 수 있게 해주는 값말 그대로 "참조" 또는 "주소"이지만, 단순한 숫자 주소보다는 더 추상적이고 포괄적인 개념 x = 95 # x는 95라는 값을 가리키는 refer..

자료 구조 2025.04.08

RAM은 왜 "임의 접근" 메모리일까?

임의 접근 vs 순차 접근 간단 비교RAM의 정식 명칭은 **Random Access Memory(임의 접근 메모리)**이다.그런데 "임의 접근"이란 말, 정확히 무슨 뜻일까?그리고 "순차 접근"이랑은 어떻게 다를까?이 글에서는 이 두 개념을 아주 쉽게 설명해본다! 임의 접근(Random Access)이란?메모리 안의 어떤 위치든 바로 접근 가능하다는 뜻!원하는 데이터가 어디에 있든 동일한 속도로 접근 가능RAM은 이 방식 덕분에 CPU와 빠르게 데이터를 주고받을 수 있음📦 비유하자면?서랍장에서 어떤 칸이든 바로 열 수 있는 것과 같아.  순차 접근(Sequential Access)이란?데이터를 순서대로 읽어야만 원하는 위치에 도달할 수 있는 방식중간 데이터를 건너뛸 수 없음테이프, 하드디스크(HDD)..

자료 구조 2025.04.07

스토리지 vs 메모리(RAM) – 뭐가 다를까?

컴퓨터 사양을 볼 때 항상 나오는 두 용어,바로 **스토리지(Storage)**와 메모리(RAM)!“둘 다 저장하는 건가?”“용량이 크면 성능이 좋은 건가?”“SSD랑 RAM은 어떤 차이가 있지?” 이번 글에서는 스토리지와 메모리의 개념 차이를 쉽게 정리 스토리지 (Storage)데이터를 장기적으로 저장하는 공간컴퓨터를 꺼도 데이터가 유지됨 (비휘발성)대표 장치: HDD, SSD, USB, SD 카드✔ 역할:운영체제, 프로그램, 사진, 문서 등을 오랫동안 보관✔ 예:스마트폰 사진 앨범, 게임 설치 파일, 영화 다운로드 등 메모리 (RAM: Random Access Memory)작업 중인 데이터를 임시로 저장하는 공간컴퓨터를 끄면 데이터가 사라짐 (휘발성)매우 빠르며, CPU와 직접 연결되어 있음✔ 역할:..

자료 구조 2025.04.05