해당 코드는 파이썬 언어로 작성되었습니다. 해당 코드만 정답인 것은 아니며 더 나은 코드가 있을 수 있습니다.
파스칼의 삼각형은 다음과 같은 구성을 띄고 있습니다.
코드 부분
cycle = int(input()) # 반복 횟수 입력
numbers = [] # 출력 용 저장 리스트
temp = [] # 계산용 임시 리스트
for i in range(cycle): # 반복문
numbers.append(1) # 첫부분 1 입력
temp.append(1) # 계산용도 동일하게 적용
if i < 2:
pass # 2가 넘어갈 될 때까지 무시
else:
for j in range(1, len(numbers)-1): # 계산
temp[j] = numbers[j-1]+numbers[j]
for j in range(len(numbers)): # 계산 완료된 코드를 다시 저장
numbers[j]=temp[j]
print(str(numbers[j]) + " ", end="") # 한줄로 출력
print("") # 줄 띄우기
실행결과
코드 설명
- cycle 변수에 정수 값을 입력하며 해당 정수 값은 반복 횟수를 의미합니다.
- numbers 리스트에 출력할 리스트를 저장합니다.
- temp 리스트에 임시로 계산용 값들을 저장합니다.
- for문에 들어와서 numbers 리스트에 1 정수 값 입력
- 반복 횟수가 2보다 작은 경우에는 그냥 출력하고 2가 넘어가면 계산 시작
- 중첩 for문을 이용하여 2번째 위치(Python은 0번이 첫 번째)부터 기존 numbers에 저장된 앞 숫자와 현재 위치의 숫자를 더해서 temp 리스트에 저장하고 numbers 리스트의 크기의 -1번만큼 반복
- 중첩 for문을 이용해서 numbers리스트에 temp리스트의 값을 입력
- print함수로 출력하고 개행하지 않음
- 출력이 마무리되면 개행함
주의할 점 : 여기서 만약 for문을 이용한 값 복사 방식이 아닌 numbers = temp와 같은 리스트에 등호를 사용하여 값을 입력하는 방식을 사용한다면 원하지 않는 결과가 나올 수가 있게 됩니다. Python에서의 리스트 등호 이용 복사의 경우에는 C언어의 행렬과 같이 방식으로 작동하게 되는데 그 말은 내용이 복사가 되는 것이 아닌 temp가 가리키는 값과 numbers가 가리키는 값을 일치시키게 돼서 temp에서 값을 변경시키면 numbers도 같이 바뀌게 되어 원하는 값이 나오지 않는 경우가 생기게 됩니다.
728x90
반응형