기술 블로그

3085번 사탕 게임 본문

알고리즘 문제/BOJ

3085번 사탕 게임

parkit 2018. 9. 18. 02:24
728x90
반응형

브루트 포스 문제이다.


하나 하나 모든 경우의 수를 다 따지면 된다.



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




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include <iostream>
#include <queue>
#include <cstdio>
#include <vector>
#include <cstring>
#include <string>
#include <math.h>
#include <algorithm>
 
using namespace std;
 
int N = 0;
 
int dy[2= { 01 };
int dx[2= { 10 };
 
char map[53][53];
 
int result = 0;
 
void check()
{
    int cnt = 1;
 
    // 행
    for (int row = 0; row < N; row++)
    {
        cnt = 1;
 
        for (int i = 0; i < N - 1; i++)
        {
            if (map[row][i] == map[row][i + 1]) ++cnt;
            else cnt = 1;
 
            result = max(result, cnt);
        }    
    }
 
    // 열
    for (int column = 0; column < N; column++)
    {
        cnt = 1;
 
        for (int i = 0; i < N - 1; i++)
        {
            if (map[i][column] == map[i + 1][column]) ++cnt;
            else cnt = 1;
 
            result = max(result, cnt);
        }
    }
}
 
void select(int y, int x)
{
    for (int i = 0; i < 2; i++)
    {
        int ny = y + dy[i];
        int nx = x + dx[i];
 
        if (ny < 0 || ny >= N || nx < 0 || nx >= N) continue;
 
        swap(map[y][x], map[ny][nx]);
 
        check();
 
        swap(map[y][x], map[ny][nx]); // 다시 원래대로
    }
}
 
int main(void)
{
    scanf("%d"&N);
 
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < N; j++)
        {
            cin >> map[i][j];
        }
    }
 
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < N; j++)
        {
            select(i, j);
        }
    }
 
    printf("%d\n", result);
 
    return 0;
}
cs








728x90
반응형

'알고리즘 문제 > BOJ' 카테고리의 다른 글

4963번 섬의 개수  (0) 2018.09.19
11650번 좌표 정렬하기  (0) 2018.09.18
10828번 스택  (0) 2018.09.17
1963번 소수 경로  (0) 2018.09.16
1654번 랜선 자르기  (0) 2018.09.15