4 ๋ถ„ ์†Œ์š”

๐Ÿ“ [S1_16935] ๋ฐฐ์—ด๋Œ๋ฆฌ๊ธฐ 3

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.StringTokenizer;


public class Main {
	static StringTokenizer st;
	static int N, M, R;
	// ๋ฐฐ์—ด ์ž…๋ ฅ
	static int[][] arr;
	// ๋ฐฐ์—ด ์ถœ๋ ฅ
	static int[][] arr_res;
	static int[] num;

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();

		st = new StringTokenizer(br.readLine(), " ");

		N = Integer.parseInt(st.nextToken());
		M = Integer.parseInt(st.nextToken());
		R = Integer.parseInt(st.nextToken());

		arr = new int[N][M];
		num = new int[R];

		// ๋ฐฐ์—ด ์ž…๋ ฅ
		for (int i = 0; i < N; i++) {
			st = new StringTokenizer(br.readLine(), " ");
			for (int j = 0; j < M; j++) {
				arr[i][j] = Integer.parseInt(st.nextToken());
			}
		}

		// ์—ฐ์‚ฐ ์ž…๋ ฅ
		st = new StringTokenizer(br.readLine(), " ");
		for (int i = 0; i < R; i++) {
			num[i] = Integer.parseInt(st.nextToken());
		}

		// R ๋งŒํผ ์—ฐ์‚ฐ ์ˆ˜ํ–‰
		for (int i = 0; i < R; i++) {
			switch (num[i]) {

			// ์ƒํ•˜ ๋ฐ˜์ „
			case 1:
				one();
				break;

			// ์ขŒ์šฐ ๋ฐ˜์ „
			case 2:
				two();
				break;

			// ์˜ค๋ฅธ์ชฝ 90๋„ ํšŒ์ „
			case 3:
				three();
				break;

			// ์™ผ์ชฝ 90๋„ ํšŒ์ „
			case 4:
				four();
				break;

			// ๋ถ€๋ถ„ ๋ฐฐ์—ด ๋‚˜๋ˆ„๊ณ  4๊ฐœ์˜ ๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋ˆ„๊ธฐ, 1->2, 2->3, 3->4, 4->1
			case 5:
				five();
				break;

			// ๋ถ€๋ถ„ ๋ฐฐ์—ด ๋‚˜๋ˆ„๊ณ  4๊ฐœ์˜ ๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋ˆ„๊ธฐ, 1->4, 4->3, 3->2, 2->1
			case 6:
				six();
				break;
				
			}
		}
		show();
	}

	// ์ƒํ•˜ ๋ฐ˜์ „
	static void one() {
		arr_res = new int[N][M];
		for (int i = 0; i < N; i++) {
			for (int j = 0; j < M; j++) {
				arr_res[i][j] = arr[N - (i + 1)][j];
			}
		}
		init();
	}

	// ์ขŒ์šฐ ๋ฐ˜์ „
	static void two() {
		arr_res = new int[N][M];
		for (int i = 0; i < N; i++) {
			for (int j = 0; j < M; j++) {
				arr_res[i][j] = arr[i][M - (j + 1)];
			}
		}
		init();
	}

	// ์˜ค๋ฅธ์ชฝ 90๋„ ํšŒ์ „
	static void three() {
		arr_res = new int[M][N];
		for (int i = 0; i < N; i++) {
			for (int j = 0; j < M; j++) {
				arr_res[j][N - 1 - i] = arr[i][j];
			}
		}
		init();
	}

	// ์™ผ์ชฝ 90๋„ ํšŒ์ „
	static void four() {
		arr_res = new int[M][N];
		for (int i = 0; i < N; i++) {
			for (int j = 0; j < M; j++) {
				arr_res[M - 1 - j][i] = arr[i][j];
			}
		}
		init();
	}

	// ๋ถ€๋ถ„ ๋ฐฐ์—ด ๋‚˜๋ˆ„๊ณ  4๊ฐœ์˜ ๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋ˆ„๊ธฐ, 1->2, 2->3, 3->4, 4->1
	static void five() {
		arr_res = new int[N][M];

				// 1 ๊ทธ๋ฃน -> 2 ๊ทธ๋ฃน
				for (int i = 0; i < N / 2; i++) {
					for (int j = 0; j < M / 2; j++) {
						arr_res[i][M / 2 + j] = arr[i][j];
					}
				}
				// 2 ๊ทธ๋ฃน -> 3 ๊ทธ๋ฃน
				for (int i = 0; i < N / 2; i++) {
					for (int j = M / 2; j < M; j++) {
						arr_res[i + N / 2][j] = arr[i][j];
					}
				}

				// 3 ๊ทธ๋ฃน -> 4 ๊ทธ๋ฃน
				for (int i = N / 2; i < N; i++) {
					for (int j = M / 2; j < M; j++) {
						arr_res[i][j - M / 2] = arr[i][j];
					}
				}

				// 4 ๊ทธ๋ฃน -> 1 ๊ทธ๋ฃน
				for (int i = N / 2; i < N; i++) {
					for (int j = 0; j < M / 2; j++) {
						arr_res[i - N / 2][j] = arr[i][j];
					}
				}
				
		init();
	}

	// ๋ถ€๋ถ„ ๋ฐฐ์—ด ๋‚˜๋ˆ„๊ณ  4๊ฐœ์˜ ๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋ˆ„๊ธฐ, 1->4, 4->3, 3->2, 2->1
	static void six() {
		arr_res = new int[N][M];

		// 1 ๊ทธ๋ฃน -> 4 ๊ทธ๋ฃน
		for (int i = 0; i < N / 2; i++) {
			for (int j = 0; j < M / 2; j++) {
				arr_res[i + N / 2][j] = arr[i][j];
			}
		}

		// 4 ๊ทธ๋ฃน -> 3 ๊ทธ๋ฃน
		for (int i = N / 2; i < N; i++) {
			for (int j = 0; j < M / 2; j++) {
				arr_res[i][j + M / 2] = arr[i][j];
			}
		}

		// 3 ๊ทธ๋ฃน -> 2 ๊ทธ๋ฃน
		for (int i = N / 2; i < N; i++) {
			for (int j = M / 2; j < M; j++) {
				arr_res[i - N / 2][j] = arr[i][j];
			}
		}

		// 2 ๊ทธ๋ฃน -> 1 ๊ทธ๋ฃน
		for (int i = 0; i < N / 2; i++) {
			for (int j = M / 2; j < M; j++) {
				arr_res[i][j - M / 2] = arr[i][j];
			}
		}
		init();
	}

	// ๋ฐฐ์—ด ์ถœ๋ ฅ 
	static void show() {
		for (int i = 0; i < N; i++) {
			for (int j = 0; j < M; j++) {
				System.out.print(arr[i][j] + " ");
			}
			System.out.println();
		}
	}


	// arr ๋ˆ„์  ๊ด€๋ฆฌ
	static void init() {
		// ๋งŒ์•ฝ 3,4 ๋ฒˆ์„ ํ–ˆ๋‹ค๋ฉด
		if (arr_res.length != N && arr_res[0].length != M) {
			int temp = N;
			N = M;
			M = temp;
			arr = new int[N][M];
			for (int i = 0; i < N; i++) {
				for (int j = 0; j < M; j++) {
					arr[i][j] = arr_res[i][j];
				}
			}
			
		} 
		else {
			for (int i = 0; i < N; i++) {
				for (int j = 0; j < M; j++) {
					arr[i][j] = arr_res[i][j];
				}
			}
		}
	}
}

๐Ÿค” ๋‚˜์˜ ์ƒ๊ฐ

๋ฐฐ์—ด๋“ค์„ ์ขŒํ‘œ์ฒ˜๋Ÿผ ์ƒ๊ฐํ•˜์—ฌ ์˜ฎ๊ธด๋‹ค ์ƒ๊ฐํ•˜๋ฉด ๊ฐ€๋ณ๊ฒŒ ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.
๋‹จ์ง€ ์ข€ ํ—ท๊ฐˆ๋ฆฐ ๊ฒƒ์€ ์—ฐ์‚ฐ์„ ์—ฌ๋Ÿฌ๋ฒˆ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ดˆ๊ธฐํ™” ํ•ด์ฃผ๋Š” ๊ฒƒ๊ณผ
3,4๋ฒˆ์„ ์ง„ํ–‰ํ•  ๋•Œ ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๊ฐ€ ๋ฐ”๋€Œ๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๊ฒƒ๋งŒ ์ฃผ์˜ํ•ด์„œ ํ’€์–ด์ฃผ๋ฉด ๊ดœ์ฐฎ์„ ๊ฒƒ ๊ฐ™๋‹ค.

ํƒœ๊ทธ: , , ,

์นดํ…Œ๊ณ ๋ฆฌ:

์—…๋ฐ์ดํŠธ: