[프로그래머스] 행렬 테두리 회전하기

최동혁·2022년 12월 26일
0

프로그래머스

목록 보기
39/68

풀이 방법

row * column 행렬을 1부터 시작해서 증가하는 식으로 만들어준다.
상, 하, 좌, 우를 tmp와 tmp1을 이용해 숫자들을 교체해주면서 회전시켜준다.
ans 리스트에 넣어주면서 최솟값을 전체 정답 answer에 넣어준다.

풀이 코드

def solution(rows, columns, queries):
    answer = []
    i = 1
    ls = []
    
    for j in range(rows):
        ls.append([k for k in range(i, i + columns)])
        i += columns
    for start_row, start_col, end_row, end_col in queries:
        garo = end_col - start_col + 1
        sero = end_row - start_row + 1
        
        ans = []
        tmp = ls[start_row][start_col - 1]
        ans.append(tmp)
        for i in range(garo):
            tmp1 = ls[start_row - 1][start_col - 1 + i]
            ls[start_row - 1][start_col - 1 + i] = tmp
            tmp = tmp1
            ans.append(tmp)
        for i in range(sero - 1):
            tmp1 = ls[start_row + i][end_col - 1]
            ls[start_row + i][end_col - 1] = tmp
            tmp = tmp1
            ans.append(tmp)
        for i in range(garo - 1):
            tmp1 = ls[end_row - 1][end_col - 2 - i]
            ls[end_row - 1][end_col - 2 - i] = tmp
            tmp = tmp1
            ans.append(tmp)
        for i in range(sero - 2):
            tmp1 = ls[end_row -2 - i][start_col - 1]
            ls[end_row -2 - i][start_col - 1] = tmp
            tmp = tmp1
            ans.append(tmp)
        answer.append(min(ans))
        
    return answer
profile
항상 성장하는 개발자 최동혁입니다.

0개의 댓글