취뽀 기록

#열심히 살자 #취업 #공부

Python/[코드트리]

[코드트리] 2차원 배열과 패턴 > 대각선으로 숫자 채우기(★★★)

hyunnn_00 2023. 7. 14. 17:44
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) # 리스트 내의 요소를 공백으로 구분하여 출력