Leetcode Java Pascal’s Triangle

업데이트:

문제

Link

코드

class Solution {

  public List<List<Integer>> generate(int numRows) {
    List<List<Integer>> result = new ArrayList<>();
    while (result.size() < numRows) {
      List<Integer> list = new ArrayList<>();
      list.add(1);
      if (result.size() > 1) {
        List<Integer> pre = result.get(result.size() - 1);
        for (int i = 1; i < result.size(); i++) {
          list.add(pre.get(i - 1) + pre.get(i));
        }
      }
      if (result.size() > 0) {
        list.add(1);
      }
      result.add(list);
    }
    return result;
  }

}

결과

Link

설명

  1. 주어진 정수 numRows 높이의 파스칼의 삼각형을 만드는 문제이다.

  2. 결과를 저장하는 result의 크기가 파스칼의 삼각형 목표 높이인 numRows를 만족하지 않을 때까지 반복하여 주어진 정수 numRows 높이의 파스칼의 삼각형을 완성한다.
    • 새 list를 생성하여 처음 값으로 1을 넣어 준다.
    • 결과를 저장하는 result의 크기가 1보다 큰 경우, 아래를 수행한다.
      • 파스칼의 삼각형의 윗 층을 변수 pre에 넣어준다.
      • 1부터 결과를 저장한 result의 크기만큼 반복하여 변수 pre의 현재 위치의 -1번째 값과 현재 위치의 값의 합을 list에 넣어준다.
    • 결과를 저장하는 result의 크기가 0이 아닌 경우, list에 1을 넣어 파스칼 삼각형의 한 줄을 완성해준다.
    • 결과를 저장하는 result에 파스칼 삼각형의 한 줄을 만든 list를 넣어준다.
  3. 반복문이 완료되면 파스칼의 삼각형을 저장한 result를 주어진 문제의 결과로 반환한다.

소스

Sample Code는 여기에서 확인 가능합니다.

댓글남기기