function diaognal(N) {
let result = Array(N).fill().map((v, i) => Array(N).fill().map((v, i) => 0)); // 0으로 초기화된 2차원 배열
let loops = 2 * N - 1;

let x, y;
let val = 1;

for (let i = 0; i < loops; i++) {
for (let j = 0; j < N; j++) {
/*
0 1 2 3 4
----------------------
0: 0,0
1: 0,1 1,0
2: 0,2 1,1 2,0
3: 0,3 1,2 2,1 3,0
4: 0,4 1,3 2,2 3,1 4,0
5: 1,4 2,3 3,2 4,1
6: 2,4 3,3 4,2
7: 3,4 4,3
8: 4,4
*/
x = j;
y = i - j;

/*
0 1 2 3 4
----------------------
0: 0,0
1: 1,0 0,1
2: 2,0 1,1 0,2
3: 3,0 2,1 1,2 0,3
4: 4,0 3,1 2,2 1,3 0,4
5: 4,1 3,2 2,3 1,4
6: 4,2 3,3 2,4
7: 4,3 3,4
8: 4,4
*/
x = i - j;
y = j;

/*
0 1 2 3 4
----------------------
0: 0,0
1: 0,1 1,0
2: 0,2 1,1 2,0
3: 0,3 1,2 2,1 3,0
4: 0,4 1,3 2,2 3,1 4,0
5: 1,4 2,3 3,2 4,1
6: 2,4 3,3 4,2
7: 3,4 4,3
8: 4,4
*/
x = i + j - (N - 1);
y = (N - 1) - j;

if (x >= 0 && x < N && y >= 0 && y < N) {
result[x][y] = val++;
}
}
}
return result;
}


let arr = diaognal(10);
console.log(arr);


'IT General' 카테고리의 다른 글

Codility #6-Distinct  (0) 2018.09.30
배열의 지그재그 출력  (0) 2018.09.27
배열의 대각선 출력  (0) 2018.09.26
Codility #11-MaxCounters  (0) 2018.09.18
Codility #10-FrogRiverOne  (0) 2018.09.18

+ Recent posts