관리 메뉴

History

[C언어][배열] 데이터와 차원 본문

C,C++/개념 실습 프로그래밍

[C언어][배열] 데이터와 차원

luckybee 2022. 10. 29. 18:57
728x90
반응형

차원이란 무엇일까? 

 

수학에서 이야기하는 차원은 좌표 및 공간에 관한 개념이다.

프로그래밍에서 이야기하는 차원은 데이터의 종속성에 관한 개념이다. 

 

이제부터 프로그래밍과 관련한 차원에 대해 설명하겠다.

 

배열은 왜 필요할까?

 

그냥 자신이 필요한 만큼 변수를 선언하면 배열이 굳이 필요한가?라는 질문에 나는 이렇게 대답할 수 있다.

 

만약 마트에서 a, b, c 물건을 3개씩 구매하려고 하는데, 이 물건들을 카테고리 별로 분류하지 않고, 이곳저곳에 놓여있다면, 손님은 물건을 사는데 시간이 많이 걸리고 원하는 제품을 정확히 찾기도 어려울 것이다.

 

코드로 비유하면 아래와 같다.

 

int a1;
char b1;
int a2;
float c1;
int a3;
int a4;
char b2;
int a5;
float c2;
char b3;
char b4;
float c3;
float c4;

  이처럼 자신이 사용해야 하는 변수와 위치를 찾기가 너무 복잡하다. 그렇기에 우리는 카테고리 별로 물건을 모으는 행위를 먼저 해야 한다. 그것이 프로그래밍에서는 데이터를 그룹 짓는 행위이다.

 

배열에 관한 사용법은 아래와 같이 같은 자료형을 여러개 그룹 지어서 표현한다. 

int arr1[10];    //int형 자료형을 10개로 묶었다.
char arr2[10];   //char형 자료형을 10개로 묶었다.
float arr3[10];  //float형 자료형을 10개로 묶었다.
double arr4[10]; //double형 자료형을 10개로 묶었다.

 

[](대괄호)를 변수 뒤에 사용하게 되면, 배열이 된다. 또한 이 [](대괄호)는 한개당 하나의 차원이라고 생각하면 편하다.

 

아래 예시코드를 보자.

int arr1[3]        //1차원 배열
int arr2[3][3]     //2차원 배열
int arr3[3][3][3]  //3차원 배열

 그럼 이제 여기서 이러한 질문이 나올 수 있다. 

 

지금은 배열 쓰는 이유를 알겠어. 그런데 왜 1차원 배열, 2차원 배열, 3차원 배열 ,n차원 배열이 왜 필요한 거야? 그냥 1차원 배열만 써도 아무 이상 없을 것 같은데?

 

데이터를 그룹 짓는 행위를 하다보면 같은 자료형이지만, 다시 세분화시켜야 하는 경우가 있다.

 

아래 표를 보면서 설명을 이어가겠다.

배열에 다양한 종류의 카테고리가 있다.

 

0번째 배열을 예시로 들면 라면도 종류가 다양하다. '신라면', '너구리', '불닭 볶음면' 등등 다양한 제품이 있기 때문에 이 제품들이 섞여서 팔리고 있으면 우리는 원하는 제품을 사기가 불편할 것이다. 

 

그래서 라면 뿐만 아니라 다른 제품들도 새롭게 그룹 짓기가 필요하다. 이렇게 각 데이터를 세부적으로 분류하다 보면 데이터들 간에 종속성이 생길 수밖에 없다.

 

이것이 그룹의 종속성 이라는 것이다.  

 

이렇게 데이터를 분류시켜서 종속성을 가지게 하는 것. 그것이 차원 개념이다. 

 

위의 예시처럼 라면-> 신라면, 너구리, 불닭볶음면... 이렇게 데이터가 종속되어 있으면

 

1차원: 라면

2차원: 신라면, 너구리, 붉닭볶음면

 

이렇게 나누어지게 된다.

 

 

728x90
반응형
Comments