📖 문제 링크
https://www.acmicpc.net/problem/16926
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
✅ 최종 코드
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Main_BJ_16926_배열돌리기1 {
static int N, M;
static int R;
static int[][] board;
//우 하 좌 상
static int[] dx = {0, 1, 0, -1};
static int[] dy = {1, 0, -1, 0};
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = null;
StringBuilder sb = new StringBuilder();
st = new StringTokenizer(br.readLine());
N = Integer.parseInt(st.nextToken());
M = Integer.parseInt(st.nextToken());
R = Integer.parseInt(st.nextToken());
board = new int[N][M];
//배열 입력
for(int i=0;i<N;i++) {
st = new StringTokenizer(br.readLine());
for(int j=0;j<M;j++) {
board[i][j] = Integer.parseInt(st.nextToken());
}
}
//배열돌리기
for(int tc=0;tc<R;tc++) {
int line = Math.min(N, M) / 2;
cycle(line, 0);
}
//배열 출력
for(int i=0;i<N;i++) {
for(int j=0;j<M;j++) {
// sb.append(board[i][j] + " ");
bw.write(board[i][j] + " ");
}
// sb.append("\n");
bw.write("\n");
}
// System.out.println(sb);
bw.flush();
bw.close();
}//main
private static void cycle(int line, int i) {
if(i == line) return;
int d = 0;
int x = i;
int y = i;
int nx, ny;
int tmp = board[i][i];
while(d<4) {
nx = x + dx[d];
ny = y + dy[d];
if(nx >= 0+i && nx < N-i && ny >= 0+i && ny < M-i) {
board[x][y] = board[nx][ny];
x = nx;
y = ny;
}
else {
d+=1;
}
}
board[i+1][i] = tmp;
cycle(line, i+1);
}//cycle
}
'알고리즘 > Java' 카테고리의 다른 글
[백준/JAVA] 1987번 : 알파벳 (0) | 2022.08.19 |
---|---|
[백준/JAVA] 16935번 : 배열돌리기3 (0) | 2022.08.14 |
[백준/JAVA] 2751번 : 수정렬하기2 (0) | 2022.08.12 |
[백준/JAVA] 10815번 : 숫자카드 (0) | 2022.08.12 |
[SWEA/JAVA] 1861번 : 정사각형방 (0) | 2022.08.09 |