문제풀이
def solution(rows, columns, queries):
answer = []
table = [[1 + i + x for i in range(0, columns)] for x in range(0, rows*columns, columns)]
min_array = []
for query in queries[:]:
for idx in range(0, 4):
query[idx] = query[idx] - 1
min_value = table[query[0]+1][query[1]]
key_1 = table[query[0]+1][query[1]]
for point_x in range(query[1], query[3]):
key_2 = table[query[0]][point_x]
if key_2 < min_value:
min_value = key_2
table[query[0]][point_x] = key_1
key_1 = key_2
for point_y in range(query[0], query[2]):
key_2 = table[point_y][query[3]]
if key_2 < min_value:
min_value = key_2
table[point_y][query[3]] = key_1
key_1 = key_2
for point_x in range(query[3], query[1], -1):
key_2 = table[query[2]][point_x]
if key_2 < min_value:
min_value = key_2
table[query[2]][point_x] = key_1
key_1 = key_2
for point_y in range(query[2], query[0], -1):
key_2 = table[point_y][query[1]]
if key_2 < min_value:
min_value = key_2
table[point_y][query[1]] = key_1
key_1 = key_2
min_array.append(min_value)
answer = min_array
return answer
알고리즘
특별한 알고리즘이 쓰이지 않은 간단한 문제이다. 하지만 시간이 오래 걸렸다. 이런 문제는 빠르게 풀 수 있도록 더 많은 문제를 풀어봐야겠다.
출처
문제: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges