본문 바로가기

여러 값을 한꺼번에 다루다 | 정보처리의 흐름 FLOW 04 | K-BOOKS

FLOW 04 · INFORMATION PROCESSING
DIRECTION 04 · 정보를 찾아가는 방향 · C · Java · Python · OOP

여러 값을 한꺼번에 다루다

C · Java · Python · OOP

QUESTION · 질문에서 시작합니다

하루 예약 인원이 한 명이 아니라 수십 명이라면 변수도 수십 개를 만들어야 할까?

guest1, guest2, guest3, guest4 ...

데이터가 많아질수록 같은 종류의 값을 하나의 구조로 다루는 방법이 필요하다.

배열은 같은 종류의 여러 값을 하나의 이름 아래 순서대로 모아 두는 방법이다. 각 값은 인덱스로 구별되기 때문에 score1, score2, score3처럼 변수 이름을 계속 늘리지 않아도 된다.

중요한 것은 배열이 ‘값 여러 개’라는 점보다 ‘인덱스로 접근하는 연속된 데이터’라는 점이다. 배열 문제가 나오면 먼저 길이와 시작 인덱스를 확인하고, 실제로 접근하는 위치가 범위를 벗어나지 않는지 살펴본다.

같은 종류의 값을 줄 세운다

int score[5] = {80, 90, 75, 88, 95};

score라는 이름으로 다섯 개의 정수를 연속된 구조에 저장했다.

score[0] score[1] score[2]

배열은 인덱스를 이용해 원하는 위치의 값을 꺼낼 수 있다.

배열과 반복문은 자주 함께 등장한다

int sum = 0; for (int i = 0; i < 5; i++) { sum += score[i]; }

같은 작업을 배열의 모든 원소에 적용할 때 반복문을 사용하면 자연스럽다.

i = 0 → score[0]
i = 1 → score[1]
...
i = 4 → score[4]

배열과 반복문이 함께 등장하는 이유는 분명하다. 배열은 여러 값을 순서대로 저장하고, 반복문은 그 여러 위치를 차례로 방문한다. 인덱스의 변화가 곧 ‘지금 어느 원소를 읽고 있는가’를 결정한다.

시험에서는 반복 횟수보다 인덱스 범위를 먼저 적는 편이 좋다. 시작값, 종료 조건, 증가식을 확인한 뒤 score[i]가 실제로 어떤 칸을 가리키는지 한 줄씩 따라가면 실수를 줄일 수 있다.

문자열도 결국 문자들의 연속이다

char name[] = "KIM";

C에서는 문자열도 문자 배열의 형태로 다룬다.

실제 메모리에는 문자열의 끝을 나타내는 특별한 종료 문자까지 함께 저장된다.

ILLUST C | DROP-01 | 문자 배열과 문자열 종료 문자 | 코드만으로 충분

C 문자열에서 마지막 종료 문자는 화면에 보이지 않지만 문자열의 끝을 알려 주는 중요한 표시다. 따라서 문자 개수와 실제 배열에 필요한 공간이 항상 같다고 생각하면 틀릴 수 있다.

문자열 함수가 어디까지 읽어야 하는지 판단할 수 있는 것도 이런 끝 표시가 있기 때문이다. 문자열 문제에서는 글자 자체뿐 아니라 배열 크기와 마지막 위치를 함께 확인하는 습관이 중요하다.

문자열을 배열로 생각하면 인덱스를 이용해 각 문자를 읽거나 바꿀 수 있다는 점도 자연스럽게 이해된다. 다만 문자열의 끝과 배열의 실제 크기를 함께 관리해야 하므로 숫자 배열보다 경계 조건을 더 조심해야 한다.

더 찾아보고 싶다면846면 학습 아카이브에서 검색하세요.
K-BOOKS Q&A이 내용이 헷갈리나요?

공부하던 페이지를 자동으로 연결해 질문할 수 있습니다.

RELATED STUDY MATERIALS

이 개념과 이어서 볼 정보처리 자료

학습자료실 65개 →

CONTINUE · INFORMATION PROCESSING ENGINEERC에서 시험 학습으로 이어가기
이야기형 개념 설명은 그대로 두고, 필요한 시험 요약·문제·실습으로 연결합니다.