[BOJ][C++] ๋ฐฑ์ค€ 3085๋ฒˆ: ์‚ฌํƒ• ๊ฒŒ์ž„

2024. 10. 30. 17:18ยท๐Ÿ’ญ Problem Solving/C++

๋ฌธ์ œ

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

 

๋ฌธ์ œ ์ดํ•ด

  • N×N ํฌ๊ธฐ์˜ ๋ณด๋“œ์— ์‚ฌํƒ•์„ 4๊ฐ€์ง€ ์ƒ‰์œผ๋กœ ์ฑ„์›Œ์ ธ์žˆ๋‹ค.
  • ์ธ์ ‘ํ•œ ๋‘ ์นธ์„ ๊ณจ๋ผ ์‚ฌํƒ•์„ ์„œ๋กœ ๊ตํ™˜ํ•œ๋‹ค.
  • ํ–‰ ๋˜๋Š” ์—ด์—์„œ ๊ฐ™์€ ์ƒ‰์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋Š” ๊ฐ€์žฅ ๊ธด ์—ฐ์† ๋ถ€๋ถ„์„ ๊ตฌํ•œ๋‹ค.

 

๋ฌธ์ œ ํ’€์ด

๐Ÿ” ์ ‘๊ทผ

๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ณ„์‚ฐํ•ด๋ณด๋ฉด,

์‚ฌํƒ•์„ ๊ตํ™˜ํ•˜๋Š” ๋ฐ N * N, ์—ฐ์†ํ•˜๋Š” ์ตœ๋Œ€ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐ N * N ์ด๋ฏ€๋กœ ์ด O(N^4)์ด๋‹ค.

N ≤ 50์ด๋ฏ€๋กœ ์ œํ•œ์‹œ๊ฐ„ ๋‚ด์— ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๐Ÿ’ก ๋ธŒ๋ฃจํŠธํฌ์Šค

  1. ํ–‰/์—ด์—์„œ ์ธ์ ‘ํ•œ ๋‘ ์นธ์„ ๊ณจ๋ผ ์„œ๋กœ ์‚ฌํƒ•์„ ๊ตํ™˜ํ•œ๋‹ค.
  2. ์—ฐ์†ํ•˜๋Š” ํ–‰/์—ด์˜ ์ตœ๋Œ€ ๊ฐœ์ˆ˜๋ฅผ ์ฐพ๋Š”๋‹ค.
    1ํšŒ ๊ตํ™˜ํ•  ๋•Œ๋งˆ๋‹ค ์ตœ๋Œ€ ๊ฐœ์ˆ˜๋ฅผ ์ฐพ๋Š”๋‹ค.

 

์ฝ”๋“œ

#include <iostream>
#include <vector>

using namespace std;

/*
1. ํ–‰/์—ด์—์„œ ์ธ์ ‘ํ•œ ๋‘ ์นธ์„ ๊ณจ๋ผ ์„œ๋กœ ์‚ฌํƒ•์„ ๊ตํ™˜ํ•œ๋‹ค.
2. ์—ฐ์†ํ•˜๋Š” ํ–‰/์—ด์˜ ์ตœ๋Œ€ ๊ฐœ์ˆ˜๋ฅผ ์ฐพ๋Š”๋‹ค.
*/

int checkMax(int n, vector<vector<char>> &board) {
    int cnt, ret = 1;

    // ํ–‰์—์„œ ์—ฐ์† ๊ฐœ์ˆ˜
    for (int i = 0; i < n; i++) {
        cnt = 1;
        for (int j = 1; j < n; j++) {
            if (board[i][j] == board[i][j - 1]) cnt++;
            else cnt = 1;
            ret = max(cnt, ret);
        }
    }

    // ์—ด์—์„œ ์—ฐ์† ๊ฐœ์ˆ˜
    for (int j = 0; j < n; j++) {
        cnt = 1;
        for (int i = 1; i < n; i++) {
            if (board[i][j] == board[i - 1][j]) cnt++;
            else cnt = 1;
            ret = max(cnt, ret);
        }
    }

    return ret;
}

int swapCandy(int n, vector<vector<char>> &board) {
    int ans = 0;

    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            // ํ–‰ ํƒ์ƒ‰
            if (j < n - 1) {
                swap(board[i][j], board[i][j + 1]);
                ans = max(ans, checkMax(n, board));
                swap(board[i][j], board[i][j + 1]);
            }

            // ์—ด ํƒ์ƒ‰
            if (i < n - 1) {
                swap(board[i][j], board[i + 1][j]);
                ans = max(ans, checkMax(n, board));
                swap(board[i][j], board[i + 1][j]);
            }
        }
    }

    return ans;
}

int main() {
    int n;

    cin >> n;
    vector<vector<char>> board(n, vector<char>(n));

    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            cin >> board[i][j];
        }
    }

    cout << swapCandy(n, board);

    return 0;
}

 

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

[BOJ][C++] ๋ฐฑ์ค€ 1260๋ฒˆ: DFS์™€ BFS  (0) 2025.04.23
[BOJ][C++] ๋ฐฑ์ค€ 2667๋ฒˆ: ๋‹จ์ง€๋ฒˆํ˜ธ๋ถ™์ด๊ธฐ  (0) 2024.11.11
[BOJ][C++] ๋ฐฑ์ค€ 1789๋ฒˆ: ์ˆ˜๋“ค์˜ ํ•ฉ  (0) 2024.10.29
[BOJ][C++] ๋ฐฑ์ค€ 15650๋ฒˆ: N๊ณผ M (2)  (0) 2024.10.28
[BOJ][C++] ๋ฐฑ์ค€ 15649๋ฒˆ: N๊ณผ M (1)  (0) 2024.10.28
'๐Ÿ’ญ Problem Solving/C++' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [BOJ][C++] ๋ฐฑ์ค€ 1260๋ฒˆ: DFS์™€ BFS
  • [BOJ][C++] ๋ฐฑ์ค€ 2667๋ฒˆ: ๋‹จ์ง€๋ฒˆํ˜ธ๋ถ™์ด๊ธฐ
  • [BOJ][C++] ๋ฐฑ์ค€ 1789๋ฒˆ: ์ˆ˜๋“ค์˜ ํ•ฉ
  • [BOJ][C++] ๋ฐฑ์ค€ 15650๋ฒˆ: N๊ณผ M (2)
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)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

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

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

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

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

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