반응형
배열
- 가장 기본적인 자료구조
- 같은 데이터 유형을 가진 자료들의 그룹/세트
- 연속된 기억장소를 배정받음
- 배열명 : 전체를 대표하는 명칭
- 원소 : 배열에 소속된 각 자료를 일컫는 용어
- 인덱스 : 각 원소의 위치를 나타내는 숫자
- 배열의 선언과 사용
- 자료형 배열이름 [ 원소개수 ] (예) int score[6];
- 각 원소를 지칭할 때, score[0],…. score[5] 라고 사용
1차원 배열
- 1차원 배열의 선언
- 자료형 배열명 [ 원소개수 ]
- Int score[6], char answer[20], double data[12];
- 배열 값의 초기화
- 배열 원소들은 초기화하지 않으면 임의의 값을 가짐 (예외 있음)
- 자료형 배열명 [ 원소개수 ] = { 초기값 리스트 }
2차원 배열
- 2차원 배열의 선언
- 자료형 배열명 [ 원소개수1 ] [원소개수2]
- 자료형 배열명 [ 행 ] [열]
- 전체 원소개수는 (행 * 열)개
- int A[3][4], int scores[2][3], double matrix[4][4];
- 행 우선과 열 우선
- 행 우선 : 행 단위로 자료를 처리 (열 인덱스를 우선 처리)
- 열 우선 : 열 단위로 자료를 처리 (행 인덱스를 우선 처리)
- int sale[2][3]의 경우, 원소 순서
- 일반적으로 행 우선 방식을 주로 사용함
- 2차원 배열의 초기화
- 자료형 배열명 [m][n] = {{리스트1},{리스트2},…,{리스트m}}
다차원 배열
- 3차원 배열
- 자료형 배열명 [m][n][p]
- 예) int A[4][2][2]
- n차원 배열로 확장 가능
- n차원 배열의 초기화
- n차원 배열의 순서(행 우선)
- 예) A[0][0][0], A[0][0][1], A[0][1][0], A[0][1][1],
A[1][0][0], A[1][0][1], A[1][1][0], A[1][1][1],
A[2][0][0], A[2][0][1], A[2][1][0], A[2][1][1],
A[3][0][0], A[3][0][1], A[3][1][0], A[3][1][1] ...
- 예) A[0][0][0], A[0][0][1], A[0][1][0], A[0][1][1],
예제) 연도/분기별 통계
- 다음은 L 전자 공릉 대리점의 매출 영업 실적이다.
- 각 연도별 총 매출 총액을 구하시오.
- 최근 3년간의 분기별 평균 매출액을 구하시오.
1분기 | 2분기 | 3분기 | 4분기 | |
2012년 | 6,000,000 | 6,500,000 | 6,200,000 | 7,000,000 |
2013년 | 7,000,000 | 6,500,000 | 7,500,000 | 8,000,000 |
2014년 | 8,000,000 | 8,500,000 | 9,000,000 | 11,000,000 |
#include <iostream>
using namespace std;
const int YEAR = 3;
const int PERIOD = 4;
void main()
{
int sales[YEAR][PERIOD] = { { 600, 650, 620, 700 },{ 700, 650, 750,800 },{ 800,850,900,1100 } };
//년도별 매출액 계산
for (int year = 0; year < YEAR; year++) {
int sum = 0;
for (int period = 0; period < PERIOD; period++)
//sum = sum + sales[year][period];
sum += sales[year][period];
cout << "YEAR " << year << " 매출 결과 = " << sum << endl;
}
//분기별 평균 매출액
for (int period = 0; period < PERIOD; period++) {
double average;
int sum = 0;
for (int year = 0; year < YEAR; year++)
sum += sales[year][period];
average = (double)sum / YEAR;
cout << "PERIOD " << period << " 매출 평균액 = " << average << endl;
}
}
반응형
'공부 > 자료구조 | 알고리즘' 카테고리의 다른 글
[자료구조] 연결리스트 만들고 출력하기 Linked List (0) | 2019.08.01 |
---|---|
[자료구조] 단순 연결리스트 노드 삽입 (0) | 2019.07.30 |
[자료구조] 단순 연결리스트 (0) | 2019.07.25 |
[자료구조] 배열과 포인터 / 2차원 배열과 포인터 예제 (0) | 2019.07.24 |
[자료구조] 동적 메모리 할당 / 반별, 과목별 평균 성적 구하기 예제 (0) | 2019.07.23 |