본문 바로가기

내가 꾸는 꿈

배열, 다차원배열 [노베이스 게임개발 7일차]

반응형

오늘 알아본 내용은 배열과 다차원 배열이다

 

배열이란 변수 여러개가 나열되어 있는 형태를 말하는데

 

일반적으로 변수를 사용할때 하는것과 같지만 끝에 대괄호 [ ] 를 붙여서 배열을 만들수가 있다.

위 그림처럼 name 변수 뒤에 [5]를 입력해 5개의 배열을 만들어 주었다.

그리고 각각을 name[0] = 1, name[1] = 3.... 이런식으로 할당할수도 있지만

브라켓을 이용해 그림처럼 한번에 할당할수도 있다.

그리고 배열이 5이라고 했을때 배열은 0부터 시작하기 때문에 4까지 총 5개의 배열을 만든다는 점을 주의 해야한다.

이때 대괄호 안의 숫자를 배열 번호(배열 인덱스)이라고 한다.

 

위 그림은 반복문을 이용해 배열 내의 모든 숫자를 모두 출력하는 프로그램을 만든것이다.

 

8번째 줄을 보면 'name[%d]'에 i의 값이 들어가서 0부터 4까지의 수를 출력했고

'= %d'에 name[i]의 값이 들어가 각 name[0~4]까지의 숫자, 즉 1, 4, 5, 6, 7을 출력했다.

 

그렇게 해서 나온 결과이다.

출력되는 대괄호 안에는 0~4의 값이,

= 뒤에는 각 배열에 해당하는 수가 출력이 되었다.

 

 

다음으로는 다차원 배열에 대해서 알아보았다.

배열과 비슷하지만 대괄호를 두개 이용해 3*3 총 9개의 변수를 할당할 수 있게 한다.

그림에서 나온 첫번째 반복문은 각 반복문에 i x k의 값을 할당하는 반복문이고

13번째 줄부터 있는 반복문은 [i][k] 배열을 3x3 사각형으로 볼수 있게 만든 반복문이다.

 

 

그렇게 해서 나온 결과이다.

하나씩 살펴보면 먼저 i = 0이 된 상태에서 k가 0~2까지 출력이 된다

그렇다면 0 x 0, 0 x 1, 0 x 2가 되어 첫번째 줄에 0 0 0이 출력되고

그다음 i = 1이 되고 1 x 0, 1 x 1, 1 x 2 이고 0 1 2

i = 2 일땐 2 x 0, 2 x 1, 2 x 2가 되어 0 2 4가 출력이 된다.

 

또 다차원배열을 하나하나 정해서 할당할 수도 있는데

이때 브라켓을 두번 사용하여 할당하면 된다.

마지막 브라켓에는 ;도 넣어주어야 한다.

 

오늘 강의도 짧은 대신 연습 프로그램을 만들어 보았다.

 

*크기가 20인 배열을 만들고 각각의 배열 원소에 2, 4, 6, 8,.... 의 수열을 할당하여 해당 배열을 출력하세요(반복문 사용)

 

이 문제는 간단하게 배열을 20개 먼저 만든 후, i를 20까지 진행되게 한 다음 배열을 하나씩 늘려가며 i에 2를 곱하면 만들 수 있다.

 

간단하게 해결 후 다음문제로 넘어갔다.

 

*크기가 20인 배열을 만들고 각각의 배열 원소에 피보나치 수열을 할당하여 해당 배열을 출력하세요(반복문 사용)

 

여기서 피보나치 수열이란 첫째 및 둘째 항이 1 이며 그 뒤의 모든 항은 바로 앞 두 항의 합인 수열이다.

 

 

일단 피보나치는 첫번째 두번째 항이 1이라 했으므로 그에맞게 할당하였고

기본적으로 3번 수는 1, 2의 합, 4는 2, 3의 합이므로 (i  - 1) + (i - 2)로 i를 할당하여 이번에도 쉽게 문제를 풀었다.

 

*크기가 10x10인 이차원 배열을 만들고 각각의 배열 원소에 원소를 1~100까지 할당한 후 해당 배열을 출력하세요(반복문 사용)

 

이번 문제도 생각보다 쉬웠다.

i의 수가 하나 커질때마다 10의자리 수가 하나씩 늘어나므로 i x 10을 하여 자리수를 바꿧고

k는 하나씩 증가시키면 문제 해결이다

이렇게 세가지 문제를 모두 풀어보았다.

 

후기 :

배열은 앞으로도 많이 나온다고 한다.

아직까지는 쉽게 나오지만 뒤로 갈수록 배운것들이 융합되며 더 어려운 문제가 나오겟지?

뒤의 목차를 보니 매우 어려워보이는 제목이였는데 얼른 배워보고 싶다.

 

*본 포스팅은 학생의 입장에서 쓴 글로 정확하지 않을 수 있으며 댓글로 피드백해 주시면 감사하겠습니다.

클래스 101 개발자 라라 님의 강의를 통해 학습한 내용을 기반으로 두고 있습니다.

반응형