n x n 크기의 격자에 정수를 채워넣으려고 합니다. 1부터 시작해서 차례대로까지 채워넣는데, 다음 그림과 같이 오른쪽 아래에서 부터 위 아래 지그재그 방향으로 채워넣는 프로그램을 작성해보세요.


해설 알고리즘

# 변수 선언 및 입력
n = int(input())
answer = [
[0 for _ in range(n)]
for _ in range(n)
]
count = 1
# 격자를 채워줍니다.
for col in range(n - 1, -1, -1):
if (n - 1 - col) % 2 == 0:
# 이 케이스에는 아래에서 위로 값을 채워줍니다.
for row in range(n - 1, -1, -1):
answer[row][col] = count
count += 1
else:
# 이 케이스에는 위에서 아래로 값을 채워줍니다.
for row in range(n):
answer[row][col] = count
count += 1
# 출력:
for row in answer:
for elem in row:
print(elem, end=" ")
print()
# 나의 풀이
n = int(input())
arr_2d = [
[0 for _ in range(n)] for _ in range(n)
]
num = 1
if n % 2 == 0:
for col in range(n-1, -1, -1):
if col % 2 == 0:
for row in range(n):
arr_2d[row][col] = num
num += 1
else:
for row in range(n-1, -1, -1):
arr_2d[row][col] = num
num += 1
else:
for col in range(n-1, -1, -1):
if col % 2 == 0:
for row in range(n-1, -1, -1):
arr_2d[row][col] = num
num += 1
else:
for row in range(n):
arr_2d[row][col] = num
num += 1
# 출력
for row in range(n):
for col in range(n):
print(arr_2d[row][col], end = " ")
print()
'Python > [코드트리]' 카테고리의 다른 글
[코드트리] 순서대로 채우기 > 파스칼의 삼각형 (0) | 2023.07.17 |
---|---|
[코드트리] 2차원 배열과 패턴 > 대각선으로 숫자 채우기(★★★) (0) | 2023.07.14 |
[코드트리] 2차원 배열과 패턴 > 지그재그로 숫자 채우기(★) (0) | 2023.07.14 |
[코드트리] 새로운 2차원 배열의 선언 > 두 개의 격자 비교하기 (0) | 2023.07.14 |
[코드트리] 새로운 2차원 배열의 선언 > 두 배열의 곱 (0) | 2023.07.14 |