[BOJ][Java] 16926. ๋ฐฐ์—ด ๋Œ๋ฆฌ๊ธฐ 1

2025. 8. 7. 15:53ยท๐Ÿ’ญ Problem Solving/Java

๋ฌธ์ œ

https://www.acmicpc.net/problem/16926

 

๋ฌธ์ œ ์ดํ•ด

  • ์ฃผ์–ด์ง„ n x m ํฌ๊ธฐ์˜ 2์ฐจ์› ๋ฐฐ์—ด์„ ๋ฐ˜์‹œ๊ณ„ ๋ฐฉํ–ฅ์œผ๋กœ r๋ฒˆ ํšŒ์ „์‹œํ‚จ๋‹ค.
  • ๋ฐฐ์—ด์€ ์—ฌ๋Ÿฌ ๊ฒน์˜ ๋ ˆ์ด์–ด(ํ…Œ๋‘๋ฆฌ)๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ, ๊ฐ ํšŒ์ „๋งˆ๋‹ค ๋ฐ”๊นฅ์ชฝ ๋ ˆ์ด์–ด๋ถ€ํ„ฐ ์•ˆ์ชฝ ๋ ˆ์ด์–ด๊นŒ์ง€ ์ˆœ์ฐจ์ ์œผ๋กœ ํšŒ์ „์‹œํ‚จ๋‹ค.

 

๋ฌธ์ œ ํ’€์ด

  • ๋ฐฐ์—ด์˜ ํšŒ์ „ ๊ฐ€๋Šฅํ•œ ๋ ˆ์ด์–ด ์ˆ˜: ๋ฐฐ์—ด์˜ ๊ฐ€์žฅ ์งง์€ ๋ณ€์˜ ์ ˆ๋ฐ˜๋งŒํผ ๋ ˆ์ด์–ด๊ฐ€ ์กด์žฌํ•œ๋‹ค.
    line = Math.min(n, m) / 2
  • r๋ฒˆ ํšŒ์ „ํ•  ๋™์•ˆ, ๊ฐ ๋ ˆ์ด์–ด์— ๋Œ€ํ•ด 4๋ฐฉํ–ฅ ์ด๋™์„ ๋ฐ˜๋ณต ์ˆ˜ํ–‰
  • ํšŒ์ „ํ•  ๋•Œ๋Š” ํ˜„์žฌ ์œ„์น˜์—์„œ ๋‹ค์Œ ์œ„์น˜๋กœ ๊ฐ’์„ ๋ฎ์–ด์“ฐ๊ธฐ ํ•˜๋ฏ€๋กœ ๋งจ ์ฒ˜์Œ ๊ฐ’์„ ์ž„์‹œ ์ €์žฅํ•ด๋‘๊ณ  ๋งˆ์ง€๋ง‰์— ์ฑ„์›Œ ๋„ฃ๋Š”๋‹ค.

 

ํšŒ์ „ ๊ณผ์ •

  • ๊ฐ ๋ ˆ์ด์–ด์— ๋Œ€ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉํ–ฅ์œผ๋กœ ์š”์†Œ๋ฅผ ํ•œ ์นธ์”ฉ ์ด๋™
    • → ์˜ค๋ฅธ์ชฝ: ์ขŒ์ธก ์—ด → ์šฐ์ธก ์—ด (0, +1)
    • ↓ ์•„๋ž˜์ชฝ: ์ƒ๋‹จ ํ–‰ → ํ•˜๋‹จ ํ–‰ (+1, 0)
    • ← ์™ผ์ชฝ: ์šฐ์ธก ์—ด → ์ขŒ์ธก ์—ด (0, -1)
    • ↑ ์œ„์ชฝ: ํ•˜๋‹จ ํ–‰ → ์ƒ๋‹จ ํ–‰ (-1, 0)
  • ๋ฐฉํ–ฅ ์ „ํ™˜์€ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜๋ฉด ๋ฐฉํ–ฅ ์ธ๋ฑ์Šค๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๋Š” ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌ

 

ํšŒ์ „ ๋ฒ”์œ„

๋ ˆ์ด์–ด i์— ๋Œ€ํ•ด ์ด๋™ ๊ฐ€๋Šฅํ•œ ๋ฒ”์œ„

  • ํ–‰(row): i๋ถ€ํ„ฐ n - i - 1๊นŒ์ง€
  • ์—ด(col): i๋ถ€ํ„ฐ m - i - 1๊นŒ์ง€

๋ ˆ์ด์–ด i ๊ตฌ์„ฑ

(i, i)                →       (i, m - i - 1)
  ↓                                 ↓
(n - i - 1, i)    ←       (n - i - 1, m - i - 1)

 

์ฝ”๋“œ

import java.util.*;
import java.io.*;

public class Main {
	public static void main(String[] args) throws IOException {
		// ์ž…๋ ฅ
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine());
		int n = Integer.parseInt(st.nextToken());
		int m = Integer.parseInt(st.nextToken());
		int r = Integer.parseInt(st.nextToken());
		int[][] arr = new int[n][m];
		int layer = Math.min(n, m) / 2; // ํšŒ์ „ ๋ ˆ์ด์–ด ์ˆ˜
		// ์™ผ์ชฝ์œผ๋กœ, ์œ„๋กœ, ์˜ค๋ฅธ์ชฝ์œผ๋กœ, ์•„๋ž˜๋กœ
		int[] dr = { 0, 1, 0, -1 };
		int[] dc = { 1, 0, -1, 0 };

		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());
			}
		}

		// ์—ฐ์‚ฐ
		while (r-- > 0) {
			for (int i = 0; i < layer; i++) {
				int idx = 0;	// ๋ฐฉํ–ฅ
				int row = i, col = i;
				int temp = arr[i][i]; // ์ฒซ ๋ฒˆ์งธ ๊ฐ’ ์ €์žฅํ•ด๋†“๊ธฐ
				while (idx < 4) {
					int nr = row + dr[idx];
					int nc = col + dc[idx];

					if (nr < i || nc < i || nr >= n - i || nc >= m - i) {	// ๋ฒ”์œ„ ๋ฒ—์–ด๋‚˜๋ฉด
						idx++;
						continue;
					}

					arr[row][col] = arr[nr][nc];
					row = nr;
					col = nc;
				}
				arr[i + 1][i] = temp;
			}
		}

		// ์ถœ๋ ฅ
		StringBuilder sb = new StringBuilder();
		for (int[] rows : arr) {
			for (int i : rows) {
				sb.append(i).append(" ");
			}
			sb.append("\n");
		}
		System.out.println(sb);
	}
}

'๐Ÿ’ญ Problem Solving > Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[BOJ][Java] 14503. ๋กœ๋ด‡ ์ฒญ์†Œ๊ธฐ  (0) 2025.09.03
[SWEA][Java] 3421. ์ˆ˜์ œ ๋ฒ„๊ฑฐ ์žฅ์ธ  (4) 2025.08.29
[BOJ][Java] 1946. ์‹ ์ž… ์‚ฌ์›  (1) 2025.08.26
[BOJ][Java] 2492. ๋ณด์„  (0) 2025.08.20
[SWEA][Java] 5215. ํ–„๋ฒ„๊ฑฐ ๋‹ค์ด์–ดํŠธ  (4) 2025.07.18
'๐Ÿ’ญ Problem Solving/Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [SWEA][Java] 3421. ์ˆ˜์ œ ๋ฒ„๊ฑฐ ์žฅ์ธ
  • [BOJ][Java] 1946. ์‹ ์ž… ์‚ฌ์›
  • [BOJ][Java] 2492. ๋ณด์„
  • [SWEA][Java] 5215. ํ–„๋ฒ„๊ฑฐ ๋‹ค์ด์–ดํŠธ
0=2.
0=2.
  • 0=2.
    0=2
    0=2.
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (104)
      • ๐Ÿ“‚ Project (2)
        • Paint the City (2)
      • ๐Ÿ’ญ Problem Solving (42)
        • C++ (28)
        • Java (14)
      • ๐Ÿ“ Study (17)
        • React (1)
        • Java (16)
      • ๐Ÿ’ป CS (11)
        • ๋ฉด์ ‘์„ ์œ„ํ•œ CS ์ „๊ณต์ง€์‹ ๋…ธํŠธ (2)
        • ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ (9)
      • ๐Ÿƒ‍โ™€๏ธ Activities (32)
        • Web Front-End Basic Study (6)
        • 42 Cursus (26)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
    • ๊ธ€์“ฐ๊ธฐ
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    git
    La Piscine
    CS
    ๋ฐฑํŠธ๋ž˜ํ‚น
    HTML
    ๊ตฌํ˜„
    ์ •๋ ฌ
    swea
    dfs
    makefile
    react
    BFS
    ๋ฐฑ์ค€
    VR
    ํŠธ๋ฆฌ
    java
    dynamic programming
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    ๋ธŒ๋ฃจํŠธํฌ์Šค
    ์‹œ๋ฎฌ๋ ˆ์ด์…˜
    C
    ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ
    ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜
    CSS
    knapsack
    .h
    ๋งต
    unity
    42๊ฒฝ์‚ฐ
    github
  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
0=2.
[BOJ][Java] 16926. ๋ฐฐ์—ด ๋Œ๋ฆฌ๊ธฐ 1
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”