[프로그래머스] Programmers 118670 행렬과 연산(Java)
·
카테고리 없음
1. 문제 설명문제 링크: 프로그래머스 118670 - 행렬과 연산요약: $R \times C$ 크기의 행렬에 두 가지 연산(ShiftRow, Rotate)을 연속해서 수행한 후의 최종 행렬을 구하는 문제입니다.ShiftRow: 모든 행을 아래로 한 칸씩 이동시킵니다. (마지막 행은 첫 번째 행으로 이동)Rotate: 행렬의 가장 바깥쪽 테두리에 있는 원소들을 시계 방향으로 한 칸씩 회전시킵니다.2. 핵심 아이디어이 문제의 핵심은 $O(1)$ 복잡도로 연산을 처리하기 위해 행렬을 3개의 덱(Deque) 구조로 분할하여 관리하는 것입니다.초기 시도 및 한계: 처음에는 System.arraycopy()를 활용해 2차원 배열을 직접 시프트하거나 회전시키는 방식을 고려했으나, 이 경우 각 연산마다 최악 $O(R..