#include <iostream>
using namespace std;
int main()
{
// 1차원 배열
int a[10] = { 1, 2, 3 };
// 2차원 배열 (아파트 데이터)
int apartment2D[2][5] = { {4, 2, 3, 4, 1}, {1, 1, 5, 2, 2} };
cout << apartment2D[1][4] << endl; // 출력: 2
cout << "---------------------\n";
// 2D 배열 출력
for (int floor = 0; floor < 2; floor++) {
for (int room = 0; room < 5; room++) {
cout << apartment2D[floor][room] << " ";
}
cout << endl;
}
cout << "---------------------\n";
// 1D 배열을 활용한 2D 표현
int apartment1D[10] = { 4, 2, 3, 4, 1, 1, 1, 5, 2, 2 };
for (int floor = 0; floor < 2; floor++) {
for (int room = 0; room < 5; room++) {
int index = (floor * 5) + room;
cout << apartment1D[index] << " ";
}
cout << endl;
}
cout << "---------------------\n";
// 2D 배열을 활용한 게임 맵
int map[5][5] = {
{ 1, 1, 1, 1, 1 },
{ 1, 0, 0, 1, 1 },
{ 0, 0, 0, 0, 1 },
{ 1, 0, 0, 0, 0 },
{ 1, 1, 1, 1, 1 }
};
// 게임 맵 출력
for (int y = 0; y < 5; y++) {
for (int x = 0; x < 5; x++) {
cout << map[y][x];
}
cout << endl;
}
return 0;
}
활용 예시
int a[10] = { 1, 2, 3 };
✅ 기능: 크기가 10인 1차원 배열 선언
✅ 초기화: 1, 2, 3 이후의 나머지 값은 자동으로 0으로 초기화됨
✅ 메모리 배치:
[1][2][3][0][0][0][0][0][0][0]
int apartment2D[2][5] = { {4, 2, 3, 4, 1}, {1, 1, 5, 2, 2} };
✅ 기능:
apartment2D[층][방] 형태로 데이터 접근4 2 3 4 1
1 1 5 2 2
✅ 데이터 출력
for (int floor = 0; floor < 2; floor++)
{
for (int room = 0; room < 5; room++)
{
int num = apartment2D[floor][room];
cout << num << " ";
}
cout << endl;
}
📌 실행 결과
4 2 3 4 1
1 1 5 2 2
int apartment1D[10] = { 4, 2, 3, 4, 1, 1, 1, 5, 2, 2 };
✅ 기능:
index = (floor * 5) + roomfor (int floor = 0; floor < 2; floor++)
{
for (int room = 0; room < 5; room++)
{
int index = (floor * 5) + room;
int num = apartment1D[index];
cout << num << " ";
}
cout << endl;
}
📌 실행 결과
4 2 3 4 1
1 1 5 2 2
✅ 결론: 1D 배열로도 2D 배열처럼 활용 가능 (메모리 구조 동일)
int map[5][5] = {
{ 1, 1, 1, 1, 1 },
{ 1, 0, 0, 1, 1 },
{ 0, 0, 0, 0, 1 },
{ 1, 0, 0, 0, 0 },
{ 1, 1, 1, 1, 1 }
};
✅ 기능:
1: 벽 (Wall)0: 길 (Path)for (int y = 0; y < 5; y++)
{
for (int x = 0; x < 5; x++)
{
int info = map[y][x];
cout << info;
}
cout << endl;
}
📌 출력 결과
11111
10011
00001
10000
11111
✅ 활용 예시:
| 배열 유형 | 설명 |
|---|---|
| 1차원 배열 (1D) | 단순 리스트 형태의 데이터 저장 |
| 2차원 배열 (2D) | 행과 열을 사용한 데이터 표현 |
| 1D 배열을 활용한 2D 표현 | 메모리 최적화 방식, 연산 속도 동일 |
| 2D 배열 활용 (게임 맵) | 게임, 시뮬레이션, 그래픽 데이터 표현 |
| 방법 | 메모리 배치 |
|---|---|
apartment2D[floor][room] | 2D 배열 (행과 열을 사용) |
apartment1D[(floor * 5) + room] | 1D 배열 (행렬 인덱싱) |
| 사용 사례 | 적용 방법 |
|---|---|
| 게임 맵 | 2D 배열 (map[y][x]) |
| 행렬(Matrix) 연산 | 2D 배열 (matrix[row][col]) |
| 메모리 최적화 | 1D 배열을 이용한 2D 변환 |