2071번 : 파스칼 삼각형
파이썬 코드
import sys
n, m = map(int, sys.stdin.readline().split()) # n : 삼각형의 높이, m : 파스칼 삼각형 종류
arr = [[0] * (i + 1) for i in range(n)]
for i in range(n):
for j in range(i + 1):
if j == 0 or j == i:
arr[i][j] = 1
else:
arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j]
if m == 1:
for i in range(n):
for j in range(i+1):
print(arr[i][j], end=' ')
print()
if m == 2:
for i in range(n):
for k in range(i):
print(" ",end='')
for j in range(n-i):
print(arr[n-i-1][j], end=' ')
print()
if m == 3:
for i in range(n):
for j in range(i+1):
print(arr[n-j-1][n-i-1], end=' ')
print()
코드 설명
- 일단 계단모양의 2차원 배열 생성 및 전부 0으로 초기화
- 기본적인 형태의 파스칼 삼각형 값 넣어주기
- m=1 일때는 그대로 출력
- m=2 과 m=3일때는 출력할때의 i,j 인덱스 값을 조정해서 출력
포인트
처음에는 각각 m의 값에 대한 if문에서 배열을 만들고, 초기화하고 그에따라 출력을 시키려 하다보니 가독성이 떨어지고 생각하기가 더욱 복잡.
하지만 배열의 생성과 초기화를 맨 위로 빼주니까 가독성이 높아졌고 그래서 그런가 계속 고민하고있었던 출력 인덱스 조정에 대한 부분이 해결됨.
이래서 클린 코드의 중요성이 계속 대두되는가 싶음.
Author And Source
이 문제에 관하여(2071번 : 파스칼 삼각형), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@zoog15/2071번-파스칼-삼각형저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)