[99클럽 코테 스터디 21일차 TIL] Pascal's Triangle

sarah·2024년 8월 12일
0

programmers

목록 보기
21/21

문제

import java.util.ArrayList;
import java.util.List;

class Solution {
    public List<List<Integer>> generate(int numRows) {
        List<List<Integer>> triangle = new ArrayList<>();

        if (numRows == 0) {
            return triangle;
        }

        List<Integer> firstRow = new ArrayList<>();
        firstRow.add(1);
        triangle.add(firstRow);

        for (int i = 1; i < numRows; i++) {
            List<Integer> prevRow = triangle.get(i - 1);
            List<Integer> newRow = new ArrayList<>();

            newRow.add(1);

            for (int j = 1; j < i; j++) {
                newRow.add(prevRow.get(j - 1) + prevRow.get(j));
            }

            newRow.add(1);

            triangle.add(newRow);
        }
        
        return triangle;
    }
}

해결방안

numRows가 0인 경우 빈값, 1인 경우 1만 list 에 추가해서 반환
그 다음부터 for문으로 리스트를 만들어야 했다. 처음과 끝은 항상 1이 오도록 셋팅하고, 중간에 들어가는 값은 이중for문으로 만들어서 셋팅해주었다.

0개의 댓글