프로그래머스 LEVEL 2(삼각 달팽이)
-
사용 언어 : javascript
-
해결 날짜 : 2022-10-10
- 해결 방법 :
- 각 row별 col 개수에 맞게 배열 동적 생성
- 아래의 세 for문에 따라서 배열에 추가
-
- 삼각형의 왼쪽 변을 따라 추가
-
- 삼각형의 아래 변을 따라 추가
-
- 삼각형의 오른쪽 변을 따라 추가
- 바깥 삼각형 내부의 또 다른 삼각형이 있다면 (n - 3 > 0) 반복
- n에서 3을 빼는 이유는 위의 세 for문을 돌며 다 채워지는 row가 3개이기 때문
- 회고 :
- x
-
코드
function solution(n) { let answer = Array.from({length: n}, (_, idx) => Array(idx + 1)); let [row, col] = [-1, 0]; let current = 1; while (n > 0) { for (let i = 0; i < n; i++) { answer[++row][col] = current++; } for (let i = 0; i < n - 1; i++) { answer[row][++col] = current++; } for (let i = 0; i < n - 2; i++) { answer[--row][--col] = current++; } n -= 3; } return answer.flat(); }
- 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges