SWEA 1954

녹색자몽·2021년 8월 6일
0

Algorithm

목록 보기
27/80
post-thumbnail

달팽이 숫자

달팽이 행렬의 패턴을 찾는 문제이다.

T = int(input())

for test_case in range(1, T + 1):
    N = int(input())
    matrix = [[0 for _ in range(N)] for _ in range(N)]
    temp = N
    row = 0
    col = 0
    num = 1
    turn = 0
     
    while temp > 0 :
        if turn % 2 == 0:
            for i in range(col,temp):
                matrix[row][i] = num
                num += 1
                col = i
            if num == N**2:
                break
             
            row += 1
            for j in range(row,temp):
                matrix[j][col] = num
                num += 1
                row = j
            col -= 1
            turn += 1
            temp -= 1
        else:
            for i in range(col,N-2-temp,-1):
                matrix[row][i] = num
                num += 1
                col = i
            row -= 1
            for j in range(row,N-1-temp,-1):
                matrix[j][col] = num
                num += 1
                row = j
            col += 1
            turn += 1
    print(f'#{test_case}')
    for i in matrix:
        print(*i)
profile
볕 좋은 날 시작하는 개발일기

0개의 댓글

관련 채용 정보