작성
·
67
0
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
안녕하세요 큰돌님 강의 잘 듣고있습니다.
다름이 아니라 코드 중에
int k = i * m + j이 부분이 어떤 것을 하는 코드인지 잘 모르겠습니다.
0 1 2 -> 0 * M + 0 , 0 * M + 1, 0 * M + 2라고 해주셨는데 이게 어떤 거를 확인하는 코드인지 잘 모르겠습니다ㅠㅠ
3 4 5
6 7 8
답변 2
0
안녕하세요 라영님 ㅎㅎ
아 순서대로 인덱스 번호를 매긴거라는 거는 알았는데
>> 네 인덱스 번호를 매긴 것 입니다.
자세하게 설명드리면 다음과 같습니다.
int k = i * m + j;
이 줄의 코드는 배열의 각 요소를 1차원 배열처럼 취급하여 인덱스를 계산하는 역할을 합니다. 이를 위해 각 요소의 위치를 계산합니다.
예를 들어, 4x4
배열의 경우:
\a[0][0], a[0][1], a[0][2], a[0][3]
a[1][0], a[1][1], a[1][2], a[1][3]
a[2][0], a[2][1], a[2][2], a[2][3]
a[3][0], a[3][1], a[3][2], a[3][3]
i
는 행 인덱스이고, j
는 열 인덱스입니다. 이제 i
와 j
를 기반으로 1차원 배열의 인덱스 k
를 계산해보겠습니다.
a[0][0]
의 경우:
i = 0
, j = 0
k = 0 * 4 + 0 = 0
a[1][2]
의 경우:
i = 1
, j = 2
k = 1 * 4 + 2 = 6
a[3][3]
의 경우:
i = 3
, j = 3
k = 3 * 4 + 3 = 15
가 됩니다.
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.
0
아 순서대로 인덱스 번호를 매긴거라는 거는 알았는데
ex)
4 7 -> 4: 0번째, 7: 1번째
2 1 -> 2 : 2번째, 1: 3번째
이를 어떻게 도출할 수 있는건가요?