출처: https://school.programmers.co.kr/learn/courses/30/lessons/77485
코드
def solution(rows, columns, queries):
matrix = []
tmp = []
for i in range(1, (rows * columns + 1)):
tmp.append(i)
if (len(tmp) == columns):
matrix.append(tmp)
tmp = []
rotation(matrix, queries)
return answer
answer = []
def rotation(matrix, queries):
global answer
for query in queries:
l = []
y1, x1, y2, x2 = query[0]-1, query[1]-1, query[2]-1, query[3]-1
start = matrix[y1][x1]
prev = matrix[y1][x1]
tmp = -1
cur_x = x1; cur_y = y1
move = [1,0]
while (tmp != start):
cur_x += move[0]
cur_y += move[1]
tmp = matrix[cur_y][cur_x]
matrix[cur_y][cur_x] = prev
prev = tmp
if (cur_x == x2):
move = [0,1]
if (cur_y == y2):
move = [-1,0]
if (cur_x == x1):
move = [0, -1]
l.append(tmp)
answer.append(min(l)
'코딩테스트 > programmers (python)' 카테고리의 다른 글
Programmers / 2단계 / 수식 최대 / python / 2020 카카오 인턴십 (0) | 2024.07.29 |
---|---|
Programmers / 3단계 / 가장 먼 노드 / python (0) | 2024.07.26 |
Programmers / 3단계 / 무인도 여행 / python (0) | 2024.07.18 |
Programmers / 3단계 / 섬 연결하기 / python / Greedy / Kruskal 알고리즘 (0) | 2024.07.13 |
Programmers / 3단계 / 징검다리 건너기 / python / 2019 카카오 개발자 겨울 인턴십 (0) | 2024.05.24 |