[백준] 16926번 배열 돌리기 1

거북이·2023년 9월 28일
0

백준[실버1]

목록 보기
62/67
post-thumbnail

💡문제접근

  • 배열의 회전을 구현하는 문제로 전의 값을 저장하지 않으면 모서리의 값이 사라지는 문제가 발생해서 이를 염두에 두면서 코드를 짰는데 문제는 간단하지만 푸는데 시간이 많이 걸렸다.

💡코드(메모리 : 116504KB, 시간 : 788ms, PyPy3로 제출)

import sys
input = sys.stdin.readline

N, M, R = map(int, input().strip().split())
array = [list(map(int, input().strip().split())) for _ in range(N)]

for _ in range(R):
    for i in range(min(N, M) // 2):
        y, x = i, i
        start = array[y][x]

        for j in range(i+1, N-i):        # 좌변
            y = j
            prev_value = array[y][x]  
            array[y][x] = start       
            start = prev_value        

        for j in range(i+1, M-i):        # 아랫변
            x = j
            prev_value = array[y][x]    
            array[y][x] = start         
            start = prev_value         

        for j in range(N-i-2, i-1, -1):    # 우변
            y = j
            prev_value = array[y][x]
            array[y][x] = start
            start = prev_value

        for j in range(M-i-2, i-1, -1):    # 윗변
            x = j
            prev_value = array[y][x]
            array[y][x] = start
            start = prev_value

for row in array:
    print(*row)

💡소요시간 : 56m

0개의 댓글