자기개발👨‍💻/코딩 알고리즘

[Python] 지그재그로 숫자 채우기 (이중배열)

천숭이 2023. 11. 29. 00:07

출처 : 코드트리

 

n * m크기의 직사각형에 숫자를 0부터 순서대로 1씩 증가시키며 왼쪽 위에서부터 시작하여 다음과 같이 지그재그 모양으로 숫자들을 쭉 채우는 코드를 작성해보세요.

import sys
a, b = map(int,sys.stdin.readline().split())  # 행, 열

buf = [[0]*b for _ in range(a)]

count=0

for col in range(b):  # 열
    if col % 2 == 0:  # 짝수열이면
        for row in range(a):
            buf[row][col] = count
            count += 1
    else:             # 홀수열이면
        for row in range(a-1, -1, -1):   # 0~n-1까지 역순으로
            buf[row][col] = count
            count+=1

for row in range(a):
    for col in range(b):
        print(buf[row][col], end=' ')
    print()

 

간단하게 알고리즘 짜는 연습이 필요!

 

그림처럼 홀수열은 밑으로 채워나가고,

짝수열은 밑에서 채워 올라간다.

 

따라서 짝수열일때만 역 for문을  사용해서 변수를 채워주면 된다.