16926 BOJ Python

슬기로운 FE 세상·2022년 5월 6일
0

어디까지 이 for문을 돌릴것인가에 대한 질문은 '제한'을 잘 읽어봐야 한다. 가장 눈여겨봐야 할 점은 min(N, M) mod 2 = 0이라는 점이다. 이는 가로 세로 한 부분은 짝수로 된다는 점을 기인하면 된다.
시작점은 0,0에서부터 아래로(좌에서부터) 시작한다는 점이다. 데이터를 swap할 때 temp를 이용하는 것처럼 배열을 옮기면서 temp에 넣고 빼고를 반복하면 된다.

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

for _ in range(r):
    for i in range(min(n, m) // 2):
        x, y = i, i
        value = graph[x][y]
        
        for j in range(i+1, n-i): #좌
            x = j
            temp = graph[x][y]
            graph[x][y] = value
            value = temp
        
        for j in range(i+1, m - i):#우
            y = j
            prev = graph[x][y]
            graph[x][y] = value
            value = temp
            
        for j in range(i+1, n - i):#상
            x = n - j - 1
            temp = graph[x][y]
            graph[x][y] = value
            value = temp
        
        for j in range(i+1, m - i):#하
            y = m - j - 1
            temp = graph[x][y]
            graph[x][y] = value
            value = temp

for i in range(n):
    for j in range(m):
        print(graph[i][j], end = ' ')
    print()
profile
자 드가자~~

0개의 댓글

관련 채용 정보