๊ด€๋ฆฌ ๋ฉ”๋‰ด

Tech Log ๐Ÿ› ๏ธ

๋ฐฑ์ค€ 3085๋ฒˆ) ์‚ฌํƒ• ๊ฒŒ์ž„ java ๋ณธ๋ฌธ

์•Œ๊ณ ๋ฆฌ์ฆ˜

๋ฐฑ์ค€ 3085๋ฒˆ) ์‚ฌํƒ• ๊ฒŒ์ž„ java

sehaan 2023. 3. 9. 00:14

๋ถ„์„


์™„์ „ํƒ์ƒ‰ ๋ฌธ์ œ์ด๋‹ค.

์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๋น„๊ตํ•ด๊ฐ€๋ฉด์„œ ๋ฌด์‹ํ•˜๊ฒŒ ๋‹ต์„ ์ฐพ๋Š” ์ˆ˜ ๋ฐ–์—๋Š” ์—†๋‹ค..

 

์ธ์ ‘ํ•œ ์‚ฌํƒ•์˜ ์ƒ‰์ด ๋‹ค๋ฅผ ๊ฒฝ์šฐ ์œ„์น˜๋ฅผ ๋ณ€๊ฒฝํ•œ๋‹ค๊ณ  ํ•˜์˜€์ง€๋งŒ ๊ทธ ์ฝ”๋“œ๋ฅผ ์งœ๋Š” ๊ฑฐ ์ž์ฒด๊ฐ€ ๋” ๋น„ํšจ์œจ์ ์ด๊ธฐ ๋•Œ๋ฌธ์—

๋ชจ๋“  ์‚ฌํƒ•์˜ ์œ„์น˜๋ฅผ ๋ฐ”๊พธ๋ฉด์„œ ๋น„๊ตํ•ด๊ฐ€๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•ด๊ฒฐํ•˜์˜€๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ์‚ฌํƒ•์„ ๋ฐ”๊พธ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋Š” 

1. ์˜†์ž๋ฆฌ๋ผ๋ฆฌ ๋ฐ”๊พธ๊ธฐ

2. ์œ„์•„๋ž˜๋กœ ๋ฐ”๊พธ๊ธฐ

์ด๋ ‡๊ฒŒ ๋‘๊ฐ€์ง€ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์–ด์„œ ๋‘ ๊ฒฝ์šฐ ๋ชจ๋‘ ๋น„๊ต๋ฅผ ํ•ด์ฃผ์—ˆ๋‹ค.

 

์‚ฌํƒ•์˜ ๊ธธ์ด๋ฅผ ๊ตฌํ•˜๋Š” ๊ฒฝ์šฐ ๋˜ํ•œ ๋‘๊ฐ€์ง€๊ฐ€ ์žˆ๋Š”๋ฐ

1. ๊ฐ€๋กœ์ค„๋กœ ์‚ฌํƒ•์œผ๋กœ ๋จน๋Š” ๊ฒฝ์šฐ

2. ์„ธ๋กœ ์ค„๋กœ ์‚ฌํƒ•์„ ๋จน๋Š” ๊ฒฝ์šฐ

์ด ๋‘ ๊ฐ€์ง€ ๊ฒฝ์šฐ๋ฅผ ์‚ฌํƒ•์˜ ์ž๋ฆฌ๋ฅผ ๋ฐ”๊ฟ€ ๋•Œ๋งˆ๋‹ค ๊ฐ๊ฐ ๋น„๊ตํ•ด์ฃผ๋ฉด ๋œ๋‹ค !

 

์ฝ”๋“œ


import java.util.Arrays;
import java.util.Scanner;

public class Main {
    static int num;
    static char[][] board;
    static int max = 0;

    public static void find_row() {
        int cnt = 1;
        for (int i = 0; i < num; i++) {
            cnt = 1;
            for (int j = 0; j < num-1; j++) {
                if (board[i][j] == board[i][j + 1]) {
                    cnt++;
                } else {
                    cnt = 1;
                }
                if (max < cnt) max = cnt;

            }

        }
    }

    public static void find_column() {
        int cnt = 1;
        for (int i = 0; i < num; i++) {
            cnt = 1;
            for (int j = 0; j < num-1; j++) {
                if (board[j][i] == board[j+1][i]) {
                    cnt++;
                } else {
                    cnt = 1;
                }
                if (max < cnt) max = cnt;

            }

        }

    }


    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        num = sc.nextInt();
        board = new char[num][num];

        for (int i = 0; i < num; i++) {
            String str = sc.next();
            for (int j = 0; j < num; j++) {
                board[i][j] = str.charAt(j);
            }
        }
        char value;
        for (int i = 0; i < num; i++) {
            for (int j = 0; j < num-1; j++) {
                value = board[i][j];
                board[i][j] = board[i][j + 1];
                board[i][j + 1] = value;

                find_row();
                find_column();

                value = board[i][j];
                board[i][j] = board[i][j + 1];
                board[i][j + 1] = value;

            }

        }
        for (int i = 0; i < num-1; i++) {
            for (int j = 0; j < num; j++) {
                value = board[i][j];
                board[i][j] = board[i+1][j];
                board[i+1][j] = value;

                find_row();
                find_column();

                value = board[i][j];
                board[i][j] = board[i+1][j];
                board[i+1][j] = value;

            }

        }
        System.out.println(max);
    }
}