[프로그래머스] 행렬 테두리 회전하기
사용 언어: 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
- 테스트 케이스: 통과
- 제출 결과: 통과
💛 개인 공부 기록용 블로그입니다. 👻