[백준 구현] 배열 돌리기 1(python)

이진규·2022년 9월 5일
1

백준(PYTHON)

목록 보기
103/115

문제

https://www.acmicpc.net/problem/16926

나의 코드

"""

"""

from sys import stdin
input = stdin.readline

n, m, r = map(int, input().split())
pan = [ list(map(int, input().split())) for _ in range(n) ]

for _ in range(r):
    p = min(n, m) // 2

    for k in range(p):
        x, y = k, k
        value = pan[x][y] # 이전 값 저장

        for i in range(k+1, n-k): # 좌
            x = i # x 값의 좌표 수정
            tmp = pan[x][y] # 다음 위치의 값 저장
            pan[x][y] = value # 다음 위치에 이전 값을 저장
            value = tmp # 위에서 모든 업데이트 후 다음 위치(이전값이 되는)의 값 저장
        for i in range(k+1, m-k): # 하
            y = i
            tmp = pan[x][y]
            pan[x][y] = value
            value = tmp
        for i in range(k+1, n-k): # 우
            x = n-i-1
            tmp = pan[x][y]
            pan[x][y] = value
            value = tmp
        for i in range(k+1, m-k): # 상
            y = m-i-1
            tmp = pan[x][y]
            pan[x][y] = value
            value = tmp

for i in pan:
    print(*i)

    

설명

다시 한번 볼 필요가 있는 문제
좌, 우, 상, 하 반복문 구성하는게 좀 어려움

참고 자료

profile
항상 궁금해하고 공부하고 기록하자.

0개의 댓글