본문 바로가기
알고리즘/알고리즘 개념?부족?_

배열 회전, (시뮬 90도회전)

by kcj3054 2021. 12. 28.
  • 알고리즘 문제를 해결할 때 배열을 회전할 경우가 매우 많다. 한번씩 헷갈린 경우가 있기에 여러번 보자.

  • 새로운 배열 (i,j)에는 90도 회전하기전의 값들이 들어가야한다, 즉 90도 반시계 위치의 값들이 있어야한다,

  • 우선 i, j에서 i가 0행으로 보자, 0행 0열일 경우 (n -1 - j행,i열) 값들이 순차적으로 들어오게된다.

  • new_grid[i][j] = grid[n - 1 - j][i]

void Rotate() {
    memset(next_grid, 0, sizeof(next_grid));

    for(int i = 0 ; i < n ; i++) 
        for(int j = 0 ; j < n ; j++)
            next_grid[i][j] = grid[n - j -1][i];

    for(int i = 0 ; i < n ; i++)
        for(int j = 0 ; j < n; j++)
            grid[i][j] = next_grid[i][j];
}

'알고리즘 > 알고리즘 개념?부족?_' 카테고리의 다른 글

비트연산 - Bit Operation  (0) 2021.12.14
달팽이 비스무리한 것 (시뮬레이션, c++)  (0) 2021.12.11
최대 최소  (0) 2021.12.10