n * m크기의 직사각형에 숫자를 1부터 순서대로 1씩 증가시키며 왼쪽 위에서부터 시작하여 오른쪽 아래 쪽까지 다음과 같은 방향으로 숫자들을 쭉 채우는 코드를 작성해보세요.
풀이
# n, m 입력받기
n, m = map(int, input().split())
# grid 리스트 생성하여 초기값 0 할당
# n개의 행과 m개의 열로 구성됨
grid = [[0] * m for _ in range(n)]
# 숫자 할당
num = 1
for i in range(n + m - 1): # 사선의 총 개수 n + m - 1번 만큼 반복
for j in range(max(0, i - m + 1), min(i + 1, n)): # 현재 사선에서 숫자를 할당할 위치 결정
# 여기서 max(0, i - m + 1)은 행의 시작 인덱스, min(i + 1 - n)은 행의 끝 인덱스 나타냄
grid[j][i - j] = num
num += 1
for row in grid:
print(*row) # 리스트 내의 요소를 공백으로 구분하여 출력
'Python > [코드트리]' 카테고리의 다른 글
[코드트리] 순서대로 채우기 > 격자로 사각형 만들기 (0) | 2023.07.17 |
---|---|
[코드트리] 순서대로 채우기 > 파스칼의 삼각형 (0) | 2023.07.17 |
[코드트리] 2차원 배열과 패턴 > 격자 반대로 채우기(★) (0) | 2023.07.14 |
[코드트리] 2차원 배열과 패턴 > 지그재그로 숫자 채우기(★) (0) | 2023.07.14 |
[코드트리] 새로운 2차원 배열의 선언 > 두 개의 격자 비교하기 (0) | 2023.07.14 |