문제
풀이과정
- 크게 3단계 과정으로 거친다
1) 왼쪽 대각선 아래로
2) 일직선 줄
3) 오른쪽 대각선 위로
- row와 column 변수를 선언하여 단계에 따라 증가 감소 시켜준다.
- 만들어진 2차원 배열을 1차원배열로 변환시켜서 리턴 시켜준다.
코드
function solution(n) {
const results = [];
let number = 1,
startRow = 0,
endRow = n-1,
startColumn = 0,
endColumn = n-1,
count = 0,
flag = n;
//n의 삼각형 2차원 배열 만들기
for(let i = 1 ; i <= n ; i ++) {
results.push(Array(i).fill(0));
}
while(flag){
//왼쪽 대각선 아래로
for (let i = startRow; i <= endRow; i ++){
results[i][startColumn] = number;
number ++;
}
startRow ++;
startColumn ++;
//일직선 줄
for (let i = startColumn; i <= endColumn; i ++){
results[endRow][i] = number;
number ++;
}
endColumn --;
endRow --;
//오른쪽 대각선 위로
for(let i = endRow; i >= startRow; i --){
results[i][results[i].length-1-count] = number;
number ++;
}
endColumn --;
startRow ++;
count ++;
flag --;
}
//2차원 배열을 1차원 배열로 변환
return results.flat();
}