Java에서 배열 다루기: 개념부터 메모리 구조까지

자바에서 배열은 동일한 데이터 타입의 여러 값을 하나의 변수로 관리할 수 있게 해주는 핵심적인 자료구조입니다. 배열을 이해하면 데이터 처리 능력이 크게 향상되며, 컬렉션 프레임워크를 학습하는 데도 기반이 됩니다. 배열의 정의와 주요 특징 배열은 동일한 타입의 요소를 순차적으로 저장하는 고정 크기의 자료구조입니다. 다음 세 가지 특성을 가집니다: ...

7월 14일 04:31에 게시됨

정수 배열에서 최대 부분 배열 합 찾기: 세 가지 접근 방식

정수 배열이 주어졌을 때, 그 안에서 연속된 부분 배열 중 합이 가장 큰 부분 배열을 찾아 그 합을 반환하는 것은 고전적인 알고리즘 문제입니다. 이 문제는 다양한 최적화 기법을 통해 해결할 수 있으며, 여기서는 세 가지 주요 접근 방식인 무차별 대입(Brute Force), 분할 정복(Divide and Conquer), 그리고 동적 계획법(Dynamic Programming)을 다룹니다. 특히, 대규모 ...

7월 13일 17:10에 게시됨

포인터와 배열을 활용한 C언어 프로그래밍 예제

다음은 C언어에서 포인터와 배열을 사용하는 다양한 예제들입니다. 2차원 배열과 포인터를 이용한 요소 접근 및 출력 #include <stdio.h> int main() { int arr[3][4] = {0}; int (*ptr)[4] = arr; for (int i = 0; i < 3; ++i) { for (int j = 0; j < 4; ++j) { arr[i][j] = i * 4 + j + 1; printf("%d ...

7월 11일 03:04에 게시됨

C 언어 포인터 심층 분석

포인터 기초 메모리 이해 메모리는 데이터를 저장하는 장치입니다. 컴퓨터 시스템에는 두 가지 주요 유형의 메모리가 있습니다: 외부 저장 장치 외부 저장 장치는 장기간 데이터를 보관하며, 전원이 꺼져도 데이터가 유지됩니다(비휘발성). 일반적인 외부 저장 장치: 하드 디스크, USB 플래시 드라이브, 광 디스크 등 내부 메모리 내부 메모리(램)는 전원이 공급되는 동 ...

7월 10일 21:16에 게시됨

이분 탐색을 활용한 배열 내 특정 값의 범위 찾기

정렬된 정수 배열 nums와 목표값 target이 주어졌을 때, 이 목표값이 처음 나타나는 위치와 마지막으로 나타나는 위치를 반환하는 문제입니다. 만약 목표값이 존재하지 않으면 [-1, -1]을 반환해야 하며, 알고리즘은 반드시 O(log n) 시간 복잡도를 가져야 합니다. 예시: 입력: nums = [5,7,7,8,8,10], target = 8 출력: [3,4] 초기 시도에서는 모든 일치하는 인덱스를 s ...

7월 10일 18:43에 게시됨

스택과 큐 자료구조 구현

스택과 큐는 컴퓨터 과학에서 가장 기본적인 자료구조 중 하나로, 각각 후입선출(LIFO)과 선입선출(FIFO) 특성을 가집니다. 이번 글에서는 배열 기반과 연결 리스트 기반의 두 가지 구현 방법을 모두 다룹니다. 스택(Stack) 자료구조 스택은 후입선출(LIFO) 원칙을 따르는 자료구조로, 가장 마지막에 추가된 요소가 가장 먼저 제거됩니다. 배열 기반 스택 구현 /* 스택 헤 ...

7월 7일 20:13에 게시됨

배열 및 문자열 처리 실습

실습 1: 배열에서 최솟값과 최댓값 찾기 다음은 주어진 배열에서 최솟값과 최댓값을 찾는 코드입니다. 코드 보기 #include <stdio.h> #define SIZE 5 void getData(int arr[], int size); void displayData(int arr[], int size); void findMinMax(int arr[], int size, int *min, int *max); int main() { int data[SIZE]; int minValue, maxValue; ...

7월 2일 02:06에 게시됨

C++에서의 배열과 포인터

C++ 책이나 튜토리얼 대부분은 배열과 포인터를 함께 다룹니다. 그 이유는 무엇이며, 둘 사이에는 어떤 연관성이 있을까요? C++에서 배열과 포인터는 밀접하게 연결되어 있으며, 주요 관계는 다음과 같습니다. 1. 배열 이름은 포인터다 대부분의 상황에서 배열 이름은 배열의 첫 번째 요소를 가리키는 포인터로 암시적으로 변환됩니다. 예를 들어, int arr[5];라는 배열 ...

6월 29일 18:28에 게시됨

PTA 배열과 정렬, 탐색 문제 풀이 및 핵심 알고리즘 설명

함수형 문제풀이 6-1 2차원 배열에서 최댓값과 그 위치 찾기 이 문제는 이중 반복문을 통해 2차원 배열 전체를 순회하며 최댓값과 해당 인덱스를 추적하는 기본적인 탐색 문제다. 전역 변수 Row와 Col에 최댓값의 위치를 저장해야 하며, 초기값 설정 시 주의가 필요하다. int fun(int arr[4][M]) { int maxVal = arr[0][0]; Row = 0; Col = 0; for (int i = 0; ...

6월 28일 23:45에 게시됨

C++로 배우는 배열과 연결 리스트 기본 연산

배열 (Array) 1. 배열 초기화 // 스택에 할당 int arr[5]; int nums[5] = { 1, 2, 3, 4, 5 }; // 힙에 할당 int* agg = new int[5]; int* ngg = new int[5] {1, 2, 3, 4, 5}; 2. 요소 접근 int getElement(int* data, int idx) { return *(data + idx); } 3. 데이터 삽입 void insertElement(int* data, int len, int value, int pos) { for (int i = len - ...

6월 20일 19:52에 게시됨