파스칼의 삼각형

제로콜라좋아요·2024년 6월 7일
0

algorithem

목록 보기
19/37

문제설명

주어진 정수 numRows에 대해, 파스칼의 삼각형의 처음 numRows를 반환하세요.
파스칼의 삼각형에서 각 숫자는 바로 위의 두 숫자의 합으로 구성됩니다:

예시 1:

Input: numRows = 5
Output: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]

예시 2:

Input: numRows = 1
Output: [[1]]

제한사항:

1 <= numRows <= 30

문제설명

class Solution:
    def generate(self, numRows: int) -> List[List[int]]:
        triangle = []
        
        for i in range(numRows):
            row = [None for _ in range(i + 1)]
            row[0], row[-1] = 1, 1
            
            for j in range(1, len(row) - 1):
                row[j] = triangle[i - 1][j - 1] + triangle[i - 1][j]
            
            triangle.append(row)
        
        return triangle

<내 코드의 흐름>

  1. generate 메서드를 정의하며, numRows는 정수형 입력이고, 반환 타입은 리스트의 리스트임을 나타냅니다.
  2. 파스칼 삼각형을 저장할 빈 리스트를 초기화합니다.
  3. 0부터 numRows-1까지 반복하는 루프를 시작합니다.
  • 각 i는 현재 행의 인덱스를 나타냅니다.
  1. i + 1 길이의 리스트 row를 None으로 초기화합니다.
  • 각 행의 길이는 행 번호보다 하나 더 깁니다.
  1. 각 행의 첫 번째와 마지막 요소를 1로 설정합니다.
  • 파스칼 삼각형의 모든 행은 첫 번째와 마지막 요소가 1입니다.
  1. 현재 행 row의 중간 요소들에 대해 반복합니다.
  • 첫 번째와 마지막 요소는 이미 1로 설정되었으므로 건너뜁니다.
  1. 현재 행 row의 j번째 요소를 계산합니다. 이는 바로 위의 두 요소의 합입니다. 8. triangle[i - 1][j - 1]와 triangle[i - 1][j]는 각각 바로 윗 행의 왼쪽과 오른쪽 요소를 의미합니다.
  2. 현재 행 row를 파스칼 삼각형 triangle에 추가합니다.
  3. 생성된 파스칼 삼각형을 반환합니다.
profile
개발자계의 제로콜라

0개의 댓글