728x90
programmers.co.kr/learn/courses/30/lessons/77485?language=python3
def solution(rows, columns, queries):
answer = []
min_val = rows * columns
matrix = []
old_val = 0
for r in range(rows):
tmp = list(range(old_val + 1, old_val + columns + 1))
old_val += columns
matrix.append(tmp)
for sr, sc, er, ec in queries:
min_val = rows * columns
sr -= 1; sc -= 1; er -= 1; ec -= 1;
tmp1, tmp2 = matrix[sr][sc], matrix[er][ec]
min_val = min(min_val, tmp1, tmp2)
for i in range(er - sr): # 좌,우
min_val = min(min_val, matrix[sr + i + 1][sc], matrix[er - i - 1][ec])
matrix[sr + i][sc] = matrix[sr + i + 1][sc] # 좌
matrix[er - i][ec] = matrix[er - i - 1][ec] # 우
for j in range(ec - sc): # 상,하
min_val = min(min_val, matrix[sr][ec - j - 1], matrix[er][sc + j + 1])
matrix[sr][ec - j] = matrix[sr][ec - j - 1] # 상
matrix[er][sc + j] = matrix[er][sc + j + 1] # 하
matrix[sr][sc + 1] = tmp1
matrix[er][ec - 1] = tmp2
answer.append(min_val)
return answer
직접 돌려서 구현하였다.
'STUDY > Algorithm' 카테고리의 다른 글
[백준] 11726 2xn 타일링 C (0) | 2021.05.05 |
---|---|
[프로그래머스] 로또의 최고 순위와 최저 순위 python, 2021 Dev-Matching: 웹 백엔드 개발자(상반기) (0) | 2021.05.04 |
[프로그래머스] 다단계 칫솔 판매 python, 2021 Dev-Matching: 웹 백엔드 개발자(상반기) (0) | 2021.05.04 |
[백준] 1074 Z python (0) | 2021.05.04 |
[백준] 11724 연결 요소의 개수 python (0) | 2021.05.04 |