최대 1 분 소요

사용 언어: Python3

문제

행렬 테두리 회전하기

풀이

다른 풀이

참고

def solution(rows, columns, queries):
    board = [[x for x in range(1+r*columns, 1+r*columns + columns)] for r in range(rows)]
    ans = []
    for x1, y1, x2, y2 in queries:
        x1, y1, x2, y2 = x1-1, y1-1, x2-1, y2-1
        tmp = board[x1][y1]
        mn = tmp # 최솟값 초기화

        # 왼쪽 열 (탐색 방향: 위 -> 아래)
        for i in range(x1, x2):
            board[i][y1] = board[i+1][y1] # 열은 y1으로 고정
            mn = min(mn, board[i+1][y1])
        
        # 아래 행 (탐색 방향: 왼쪽 -> 오른쪽)
        for i in range(y1, y2):
            board[x2][i] = board[x2][i+1] # 행은 x2로 고정
            mn = min(mn, board[x2][i+1])
        
        # 오른쪽 열 (탐색 방향: 아래 -> 위)
        for i in range(x2, x1, -1):
            board[i][y2] = board[i-1][y2] # 열은 y2으로 고정
            mn = min(mn, board[i-1][y2])
        
        # 위쪽 행 (탐색 방향: 오른쪽 -> 왼쪽)
        for i in range(y2, y1, -1):
            board[x1][i] = board[x1][i-1] # 행은 x1으로 고정
            mn = min(mn, board[x1][i-1])
            
        board[x1][y1+1] = tmp # tmp 넣기
        ans.append(mn)
    return ans
  • 테스트 케이스: 통과
  • 제출 결과: 통과
    스크린샷 2023-06-22 오후 3 24 17

IMG_0474



💛 개인 공부 기록용 블로그입니다. 👻

맨 위로 이동하기