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를 생성
- dp2는 전체의 i번째 행이고 처음과 끝은 1이므로 1이 i개 있는 리스트로 생성
- dp2의 index 범위 j >= 1 and j < i-1 내의 값을 이전 행의 인접한 두 수를 더한 값으로 업데이트
- 새로만든 행 dp2를 return
- n번째 행을 찾았다면 k번째 수를 print