-
백준(BOJ) 17406번 배열 돌리기 4알고리즘 풀이/백준(Boj) 2020. 2. 22. 17:06
문제 : https://www.acmicpc.net/problem/17406
17406번: 배열 돌리기 4
크기가 N×M 크기인 배열 A가 있을때, 배열 A의 값은 각 행에 있는 모든 수의 합 중 최솟값을 의미한다. 배열 A가 아래와 같은 경우 1행의 합은 6, 2행의 합은 4, 3행의 합은 15이다. 따라서, 배열 A의 값은 4이다. 1 2 3 2 1 1 4 5 6 배열은 회전 연산을 수행할 수 있다. 회전 연산은 세 정수 (r, c, s)로 이루어져 있고, 가장 왼쪽 윗 칸이 (r-s, c-s), 가장 오른쪽 아랫 칸이 (r+s, c+s)인 정사각형을 시계
www.acmicpc.net
풀이 :
순서는 임의로 정해도 된다. 는 글을 놓쳐서 몇 번 실패하였던 문제이다.
order는 0,1,2,3 .. k-1까지 순서를 담고 next_permutation을 통해 k-1,3,2,1,0까지 돌려주자.
k 가 최대 6까지기에 충분히 가능하다.
회전하는 rotate 배열은 재귀를 통해 구현하였는데 temp는 다음 값을 저장해놓고 이전 값은
bef를 통해서 적는다.
회전은 총 s번 진행되는데 s가 3이라면 3은 제일 바깥쪽부터 1 제일 안쪽까지 회전이 진행되게 하였다.
이때 회전하는 범위는 s가 3일 때 x좌표로 3 * 2번 y좌표로 3* 2번 이동할 수 있기 때문에
0이 되면 방향을 바꿔주고 다시 이동 횟수 ( 3 * 2)를 채워주었다.
코드 ( C++ )
'알고리즘 풀이 > 백준(Boj)' 카테고리의 다른 글
백준( BOJ ) 16236번 아기 상어 (0) 2020.02.24 백준 BOJ(1062) 가르침 (2) 2020.02.22 백준(BOJ) 17281번 ⚾ (0) 2020.02.20 백준(BOJ) 17837번 새로운 게임 2 (0) 2020.02.11 백준(BOJ 1300) K번째 수 (0) 2020.02.07