[JavaScript][Programmers] 삼각 달팽이
🔎 삼각 달팽이
❓ 문제링크
https://programmers.co.kr/learn/courses/30/lessons/68645
📄 제출 코드
function solution(n) {
const answer = new Array(n).fill().map((_, i) => new Array(i + 1));
let count = 0;
let x = -1;
let y = 0;
while (n > 0) {
for (let i = 0; i < n; i++) {
count++;
x++;
answer[x][y] = count;
}
for (let i = 0; i < n - 1; i++) {
count++;
y++;
answer[x][y] = count;
}
for (let i = 0; i < n - 2; i++) {
count++;
x--;
y--;
answer[x][y] = count;
}
n -= 3;
}
// let res = answer.reduce((answer, cur) => {
// console.log(`answer : ${answer}, cur : ${cur}`)
// return answer.concat(cur);
// });
return answer.flat();
}
let n = 4;
console.log(solution(n));
처음에 어떤 규칙이 있을거 같아서 규칙을 찾아 해보려다가 결국 못찾았다.
그래서 아래로 내려가는 동작, 옆으로 이동하는 동작, 위로 올라가는 동작 이렇게 삼각형을 계속 돌도록 구현하였다.
다 구현한 후 결과는 제대로 나왔는데 문제는 이걸 1차원 배열로 나타내는 방법이였다.
검색을 통해 찾았고 , reduce와 concat을 이용하여 나타낼 수 있다.
또 다른 방법으로는 flat을 사용하면 1차원배열로 나타낼 수 있다.
📘 참고
https://velog.io/@mnmm/js-pre-concat
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/flat
Author And Source
이 문제에 관하여([JavaScript][Programmers] 삼각 달팽이), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@cjh951114/JavaScriptProgrammers-삼각-달팽이저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)