2005_파스칼의삼각형
2024. 8. 24. 23:23ㆍ알고리즘 풀이
for _ in range(int(input())):
n = int(input())
triangle = [[] for _ in range(n + 1)] # 삼각형을 담을 리스트
for i in range(1, n + 1):
if i == 1: # 첫번째는 그냥 1 만 넣음
triangle[1].append(1)
elif i == 2: # 두번째는 1을 두개 넣음
triangle[2].append(1)
triangle[2].append(1)
else: # 이후로는
for j in range(i): # i만큼 즉, 몇번째 줄인가 만큼 반복해서 값을 채울거다.
if j == 0 or j == i - 1: # 처음과 끝은 항상 1이다.
triangle[i].append(1)
else: # 처음과 끝이 아니면!
# 현재 내 위치의 값 = 전 리스트의 내위치 + 전 리스트의 내위치-1
val = triangle[i - 1][j] + triangle[i - 1][j - 1]
triangle[i].append(val)
# 답 출력 형식.. [[], [1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1]]
# 0번째 빼고 1부터 마지막까지 한줄에 한 리스트씩 출력
print(f"#{_+1}")
for idx in range(1, n + 1):
print(*triangle[idx]) # 리스트에 * 이런 별표를 붙이면 리스트가 풀려서 출력된다. 즉, [1,2] => 1,2 요러케
# =======더 깔끔한 풀이===============================================================================
for case in range(int(input())):
n = int(input())
arr = [[0] * (n + 1) for _ in range(n + 1)]
arr[1][1] = 1
for y in range(2, n + 1):
for x in range(1, y + 1):
# pass
arr[y][x] = arr[y - 1][x - 1] + arr[y - 1][x]
print(f"#{case+1}")
for i in range(1, n + 1):
for j in range(1, i + 1):
print(arr[i][j], end=" ")
print()'알고리즘 풀이' 카테고리의 다른 글
| 1216_회문2 (1) | 2024.08.24 |
|---|---|
| 1215_회문1 (1) | 2024.08.24 |
| 2001_파리퇴치 (1) | 2024.08.24 |
| 1983_조교의 성적 매기기 (2) | 2024.08.24 |
| SWEA_1953_달팽이숫자 (3) | 2024.08.24 |