[問題解決]プログラマ-回転マトリクスボーダー[レベル2]
11115 ワード
問題の説明は省略します。リンクをクリックしてください。
提问链接
I/O例
rowscolumnsqueriesresult
6
6
[[2,2,5,4],[3,3,6,6],[5,1,6,3]]
[8, 10, 25]
3
3
[[1,1,2,2],[1,2,2,3],[2,1,3,2],[2,2,3,3]]
[1, 1, 5, 3]
100
97
[[1,1,100,97]]
[1]
に答える
直感的な画像
(画像エラー:1 2 3ではなく3 2 1の順)
コード順序
for x1, y1, x2, y2 in queries:
first = graph[x1-1][y1-1]
mini = first
# 왼쪽 세로 부분 (아래에서 위로 진행)
for k in range(x1-1, x2-1):
temp = graph[k+1][y1-1]
graph[k][y1-1] = temp
mini = min(mini, temp)
コード#コード#
マイコード
def solution(rows, columns, queries):
answer = []
graph = [[0 for _ in range(columns)] for _ in range(rows)]
idx = 1
for i in range(rows):
for j in range(columns):
graph[i][j] = idx
idx += 1
for x1, y1, x2, y2 in queries:
first = graph[x1-1][y1-1]
mini= first
# 왼쪽변
for k in range(x1-1, x2-1):
graph[k][y1-1] = graph[k+1][y1-1]
mini = min(mini, graph[k+1][y1-1])
# 밑변
for k in range(y1-1, y2-1):
graph[x2-1][k] = graph[x2-1][k+1]
mini = min(mini, graph[x2-1][k+1])
# 오른변
for k in range(x2-1, x1-1, -1):
graph[k][y2-1] = graph[k-1][y2-1]
mini = min(mini, graph[k-1][y2-1])
# 윗변
for k in range(y2-1, y1-1, -1):
graph[x1-1][k] = graph[x1-1][k-1]
mini = min(mini,graph[x1-1][k-1])
graph[x1-1][y1] = first
answer.append(mini)
return answer
Reference
この問題について([問題解決]プログラマ-回転マトリクスボーダー[レベル2]), 我々は、より多くの情報をここで見つけました https://velog.io/@redcarrot01/ProblemSolving-프로그래머스-행렬테두리회전하기Level2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol