인프런 커뮤니티 질문&답변

김라영님의 프로필 이미지

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

4-J

4-j에서 k = i *m + j

24.07.09 15:45 작성

·

62

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

큰돌님의 프로필 이미지
큰돌
지식공유자

2024. 07. 10. 11:08

안녕하세요 라영님 ㅎㅎ

아 순서대로 인덱스 번호를 매긴거라는 거는 알았는데

>> 네 인덱스 번호를 매긴 것 입니다.

자세하게 설명드리면 다음과 같습니다.

 

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는 열 인덱스입니다. 이제 ij를 기반으로 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

김라영님의 프로필 이미지
김라영
질문자

2024. 07. 09. 15:49

아 순서대로 인덱스 번호를 매긴거라는 거는 알았는데

ex)

4 7 -> 4: 0번째, 7: 1번째

2 1 -> 2 : 2번째, 1: 3번째

이를 어떻게 도출할 수 있는건가요?