본문 바로가기
OLD_알고리즘/Baekjoon

백준 ] 16926번 배열 돌리기 1

by 달승 2021. 6. 28.

 

16926번: 배열 돌리기 1

크기가 N×M인 배열이 있을 때, 배열을 돌려보려고 한다. 배열은 다음과 같이 반시계 방향으로 돌려야 한다. A[1][1] ← A[1][2] ← A[1][3] ← A[1][4] ← A[1][5] ↓ ↑ A[2][1] A[2][2] ← A[2][3] ← A[2][4] A[2][5]

www.acmicpc.net

 

✍ 문제풀이

✔ 제한사항을 살펴보면 돌려야 하는 사각형의 개수를 알 수 있다.

항상 min(N, M) mod 2 = 0 이므로 min(N, M) / 2 값이 돌려야 할 사각형의 개수이다.

- 4 * 5의 경우
min(4, 5) = 4이고, 4 / 2 = 2이므로 돌려야 할 사각형의 개수는 2이다.

- 5 * 4의 경우
min(5, 4) = 4이고, 4 / 2 = 2이므로 돌려야 할 사각형의 개수는 2이다.

 

✔ 위에서 알아본 돌려야 할 사각형의 개수로 각 사각형의 기준점(시작점)의 인덱스를 알 수 있다.

- 4 * 5의 경우 돌려야 할 사각형의 개수는 2이다.
빨간색 화살표 사각형은 (0, 0) 부터 시작한다.
노란색 화살표 사각형은 (1, 1) 부터 시작한다.

- 5 * 4의 경우 돌려야 할 사각형의 개수는 2이다.
위의 설명과 같다.

 

돌려야  하는 사각형 각각의 최대 길이

   n_max = n - ( min(n, m) / 2 ) - 1  이고, m_max = m - ( min(n, m) / 2 ) - 1 이다.

- 빨간색 사각형(첫번째로 돌려야 하는 사각형)
시작점은 0이고, 세로 길이는 4 & 가로 길이는 3이다.

- 노란색 사각형
시작점은 1이고,
세로 길이는 3 & 가로 길이는 2이다.

 

✔✔ 사각형 내의 값 "한 칸 씩" 밀기

 

 

🌱 정답코드

 

 

 

 

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

Baekjoon - 그리디 ] 11399 ATM  (0) 2021.05.26
Baekjoon ] 2108 통계학  (0) 2021.05.22
Baekjoon ] 7568 덩치  (0) 2021.05.17
Brute Force ] 2231 분해합  (0) 2021.05.11
Baekjoon ] 상수 (문자열 크기 비교)  (0) 2021.04.27

댓글