Koala - 10기/코딩테스트 준비 스터디

[백준/Python] 16395 : 파스칼의 삼각형

허수민 2023. 3. 16. 14:50

16395번: 파스칼의 삼각형 (acmicpc.net)

 

16395번: 파스칼의 삼각형

파스칼의 삼각형은 이항계수를 삼각형 형태로 배열한 것인데, 블레즈 파스칼(1623-1662)을 따라 이름 붙여졌다. 단순한 형태로, 파스칼의 삼각형은 다음과 같은 방법으로 만들 수 있다. N번째 행

www.acmicpc.net

 

 

소스코드

코드설명

  • n번째 행의 k번째 수를 찾기위해 n,k 입력 받음
  • n이 1 또는 2이면 행에 1만 존재하기 때문에 k의 값과 없이 1 출력
  • n이 3 이상일 때
    • 2행 [1,1]인 dp 생성, dp를 copy한 dp2 생성
    • 3행부터 생성하므로 3 <= i and i >= n 범위 내에서 반복
    • dp2는 새로 생성한 행, dp는 새로운 행을 생성하기 위해 이용하는 행이므로 dp를 dp2로 업데이트
    • fun(i) 함수를 이용해 새로운 행 dp2를 생성
      1. dp2는 전체의 i번째 행이고 처음과 끝은 1이므로 1이 i개 있는 리스트로 생성
      2. dp2의 index 범위 j >= 1 and j < i-1 내의 값을 이전 행의 인접한 두 수를 더한 값으로 업데이트
      3. 새로만든 행 dp2를 return
    • n번째 행을 찾았다면 k번째 수를 print