도형 회전 관련

    C++ 도형, 행렬 회전 코드 : 네이버 블로그 (naver.com)

     

    C++ 도형, 행렬 회전 코드

    N *M 도형을 90도 회전하게 될 경우 M*N 의 배열이 생성된다 0 0 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0...

    blog.naver.com

     

     

     

    도형을 실제로 그려보고 4방향으로 돌린 것에 대한 좌표를 가진다

    now 도형과 next 도형의 i,j 관계가 어떠한지 살펴보면 된다. 

    이 때, i,j는 당연하게도 회전될 도형의 column의 값에 영향을 받는다. 

     

     

     

    def rotate_clock(n,m, graph) :
        temp = [[0 for _ in range(n)] for _ in range(m)]
        for i in range(m) :
            for j in range(n) :
                 temp[i][j] = graph[n-j-1][i]
    
        return temp
    
    
    def rotate_reverse_clock(n,m, graph) :
        temp = [[0 for _ in range(n)] for _ in range(m)]
        for i in range(m):
            for j in range(n):
                temp[i][j] = graph[j][m-i-1]
    
        return temp
        
        
    n,m = map(int,sys.stdin.readline().split())
    my_list = [list(map(int,sys.stdin.readline().split())) for _ in range(n)]
    
    for k in my_list:
        print(*k)
    print()
    
    z = rotate_reverse_clock(n,m,my_list)
    for k in z :
        print(*k)
        
        
        
        
    4 3
    0 0 1
    0 1 1
    0 0 1
    0 0 1
    
    # 인풋
    0 0 1
    0 1 1
    0 0 1
    0 0 1
    
    
    # 아웃풋
    1 1 1 1
    0 1 0 0
    0 0 0 0

    'CS > 알고리즘' 카테고리의 다른 글

    Network Flow (최대 유량 알고리즘) 파이썬  (0) 2022.03.04
    투 포인터  (0) 2021.10.10
    이분탐색  (0) 2021.10.09
    Meet In The Middle 알고리즘  (0) 2021.10.08
    최소 스패닝 트리와 크루스칼 알고리즘  (0) 2021.10.04

    댓글

    Designed by JB FACTORY