4. 3번 과정에서 최솟값을 찾습니다.

    역시 3번 과정에서 동일하게 행렬을 회전하면서 최솟값을 찾아내는 간단한 문제입니다. _min이 최솟값을 찾는 부분에 해당합니다.

    answer.append(_min)

    그리고 마지막으로 나온 최솟값을 answer 배열에 추가하면 됩니다.

     

    전체 코드

    3장/행렬_테두리_회전하기_최적화.py

    def solution(rows, columns, queries):
        answer = []
        board = [[columns * j + (i + 1) for i in range(columns)] for j in range(rows)]
        for query in queries:
            a, b, c, d = query[0] - 1, query[1] - 1, query[2] - 1, query[3] - 1
            row1, row2 = board[a][b:d], board[c][b + 1:d + 1]
            _min = min(row1 + row2)
    
            for i in range(c, a, -1):
                board[i][d] = board[i - 1][d]
                if board[i][d] < _min: _min = board[i][d]
    
            for i in range(a, c):
                board[i][b] = board[i + 1][b]
                if board[i][b] < _min: _min = board[i][b]
    
            board[a][b + 1:d + 1], board[c][b:d] = row1, row2
    
            answer.append(_min)
          
        return answer
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.