2차원배열(인덱스 구하기)

Lee Soyeon·2022년 2월 11일
0

JavaScript

목록 보기
2/3

x * y = z 일 때, x행 y열, 셀z개로 이루어진 테이블 arr이 있다. numberArr = [0,...,(z-1)]; 이고,
(const numberArr = Array(z).fill().map((el,i) => i);)

배열 numberArr의 각 인덱스에 해당하는 값은 arr의 각 셀에 차례대로 하나씩 들어가 있다.
(0~(z-1)의 값이 arr각 셀에 하나씩 차례대로 들어있다)

이 테이블 arr을 2차원 배열로 표현했을 때,

numberArr의 값을 랜덤으로 뽑아서 나온 숫자 n이 arr의 어느 위치에 들어있는지 arr의 인덱스를 구하는 방법은 아래와 같다.

row = Math.floor(n/x)
cell = n%y (단, n%y>=x 라면, cell = (n%y)%x)
n의 인덱스 값(위치) = arr[row][cell]

행과 열로 나타낸다면 row, cell에 각각 1씩 더해주면 된다.
(row+1열 cell+1행)

만약 numberArr1부터 시작한다면
(arr테이블의 각 셀에 1~z의 값이 하나씩 들어있다면)
n의 인덱스 값은 cell + 1해주면 된다.

연관 프로젝트: 지뢰찾기

profile
프론트엔드 개발자가 되기 위해 공부하고 있습니다.

0개의 댓글