프로그래머스 LEVEL 2(삼각 달팽이)

image

  • 사용 언어 : javascript

  • 해결 날짜 : 2022-10-10

  • 해결 방법 :
    • 각 row별 col 개수에 맞게 배열 동적 생성
    • 아래의 세 for문에 따라서 배열에 추가
      1. 삼각형의 왼쪽 변을 따라 추가
      1. 삼각형의 아래 변을 따라 추가
      1. 삼각형의 오른쪽 변을 따라 추가
    • 바깥 삼각형 내부의 또 다른 삼각형이 있다면 (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