더북(TheBook)

배열을 사용하면 각 요소에 일일이 이름을 붙일 필요가 없다는 장점이 있다. 사실 배열 인덱스를 사용하는 것은 배열명에 인덱스를 합한 이름을 붙이는 것과 다름이 없다. 예를 들어 실수 8개를 처리할 때 a0, a1, a2, a3, a4, a5, a6, a7이라는 이름의 변수를 따로 만들 수도 있을 것이다. 그러나 수십 개의 변수명을 일일이 지정하는 것은 번거로우며, 수백만 개의 변수가 있을 때는 사실상 불가능하다.

먼저 배열을 이용해 벡터를 표현하는 예를 살펴보자. 벡터는 3.3절에서 자세히 설명하지만, 일단 벡터는 일련의 실수라고 생각하자. 두 벡터의 스칼라곱은 같은 위치에 있는 요소들 간의 곱을 더한 것이다. 예를 들어 두 배열 x[]y[]가 벡터를 표현하고 있다면 스칼라곱은 x[0]*y[0] + x[1]*y[1] + x[2]*y[2]이다. 이 표현식을 일반화해, 길이가 변수 n인 1차원 실수 배열 x[]y[]의 내적은 다음과 같이 for 루프를 이용해 구할 수 있다.

total = 0.0
for i in range(n):
    total += x[i]*y[i]

이런 연산을 아주 간단히 표현할 수 있으므로 배열을 사용하는 것은 아주 자연스러운 선택이다. 더 복잡한 예를 살펴보기 전에, 먼저 배열로 프로그래밍할 때 염두에 두어야 할 특성 몇 가지를 설명하겠다.

▼ 표 1.4.1 스칼라곱의 트레이스

i

x[i]

y[i]

x[i]*y[i]

total

 

 

 

 

0.00

0

0.30

0.50

0.15

0.15

1

0.60

0.10

0.06

0.21

2

0.10

0.40

0.04

0.25

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.