https://www.acmicpc.net/problem/3085
3085๋ฒ: ์ฌํ ๊ฒ์
์์ 3์ ๊ฒฝ์ฐ 4๋ฒ ํ์ Y์ C๋ฅผ ๋ฐ๊พธ๋ฉด ์ฌํ ๋ค ๊ฐ๋ฅผ ๋จน์ ์ ์๋ค.
www.acmicpc.net
์ฒซ๋ฒ์งธ ์๋ (์คํจ)
- n์ ํฌ๊ธฐ๊ฐ ๊ทธ๋ฆฌ ํฌ์ง ์๊ธฐ์ ๋จ์ํ๊ฒ ๊ตฌํด๋ณด์๋ค.
- ๊ฐ๋ก๋ก ๊ตํํ ๋, ์ธ๋ก๋ก ๊ตํํ ๋๋ก ํฌ๊ฒ ๋๋๊ณ ์๋์ ๊ฐ๊ณผ ๋ฐ๊พธ๋ ๋์์ div๋ก
- ์ค๋ณต์ ๋ง์ง๋ง ๋์ค์ ์์จ ์ ์์๊ฒ ๊ฐ๋ค.
|
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
|
import java.io.InputStreamReader;
import java.io.BufferedReader;
public class Main {
static char[][] G;
static int n;
static int[][] div = {{0,0},{-1,0},{1,0}};//lDiv์ ij ๋ฐ๊พธ๊ธฐ
static boolean Valid(int x, int y) {
if (x<0||x>=n) return false;
if (y<0||y>=n) return false;
return true;
}
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
n = Integer.parseInt(br.readLine());
G = new char[n][n];
for (int i=0;i<n;i++) {
String s = br.readLine().strip();
for (int j=0;j<n;j++)
G[i][j] = s.charAt(j);
}
int mx=-1;
for (int i=0;i<n;i++) { //w
for (int j=0;j<n;j++) {
for (int k=0;k<3;k++) {
int x = i+div[k][0],y = j+div[k][1];
if (Valid(x,y)==false) continue;
char pp ='0';
int a=0;
for (int p=0;p<n;p++) {
char t = G[i][p];
if (j==p) t = G[x][y];
if (t!=pp) {
mx = Math.max(mx, a);
pp=t; a=1;
}
else a+=1;
}
mx = Math.max(mx, a);
}
}
}
for (int j=0;j<n;j++) { //l
for (int i=0;i<n;i++) {
for (int k=0;k<3;k++) {
int x = i+div[k][1],y = j+div[k][0];
if (Valid(x,y)==false) continue;
char pp ='0';
int a=0;
for (int p=0;p<n;p++) {
char t = G[p][j];
if (i==p) t = G[x][y];
if (t!=pp) {
mx = Math.max(mx, a);
pp=t; a=1;
}
else a+=1;
}
mx = Math.max(mx, a);
}
}
}
System.out.println(mx);
}
}
|
cs |
- ์ฒซ ์๋์์๋ 2์์ ์ฌํ์ด ๋ฐ๋ ๋ ๋ณํ๋ ๊ฒ์ด j์ j+div[x][1]์ด๋ผ๊ณ ์๊ฐํ๊ณ ์งํํ๋ค. ๊ทธ๋ฌ๋ ์ฌํ์ ๋ฐ๊ฟจ์๋ ์ํฅ์ ๋ฐ๋ ํ ๋๋ ์ด์ ๊ณ ๋ คํด์ผํ๊ธฐ์ ๋๋ฒ์งธ ์๋์์๋ ๊ทธ๊ฒ์ ๊ณ ์ณ๋ณด์๋ค.
๋๋ฒ์งธ ์๋ (์ฑ๊ณต)
- ์ฒซ๋ฒ์งธ ์๋์์ ๊ณ ๋ คํ์ง ๋ชปํ๋ '๋ฐ๋๋ ์ฌํ์์ด ๋ชจ๋ ํฌํจ๋ ํ ๋๋ ์ด'์ ๊ณ ๋ คํ์ฌ ๋ณด์๋ค.
|
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
95
96
97
98
99
|
import java.io.InputStreamReader;
import java.io.BufferedReader;
public class Main {
static char[][] G;
static int n;
static int[][] div = {{0,0},{-1,0},{1,0}};
static boolean Valid(int x, int y) {
if (x<0||x>=n) return false;
if (y<0||y>=n) return false;
return true;
}
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
n = Integer.parseInt(br.readLine());
G = new char[n][n];
for (int i=0;i<n;i++) {
String s = br.readLine().strip();
for (int j=0;j<n;j++)
G[i][j] = s.charAt(j);
}
int mx=-1;
for (int i=0;i<n;i++) {
for (int j=0;j<n;j++) {
for (int k=0;k<3;k++) {
int x = i+div[k][0],y = j+div[k][1];
if (Valid(x,y)==false) continue;
char pp ='0';
int a=0;
for (int p=0;p<n;p++) {
char t = G[i][p];
if (j==p) t = G[x][y];
if (t!=pp) {
mx = Math.max(mx, a);
pp=t; a=1;
}
else a+=1;
}
mx = Math.max(mx, a);
pp ='0';
a=0;
for (int p=0;p<n;p++) {
char t = G[p][j];
if (p==x) t = G[i][j];
else if (p==i) t = G[x][y];
if (t!=pp) {
mx = Math.max(mx, a);
pp=t; a=1;
}
else a+=1;
}
mx = Math.max(mx, a);
}
}
}
for (int j=0;j<n;j++) {
for (int i=0;i<n;i++) {
for (int k=0;k<3;k++) {
int x = i+div[k][1],y = j+div[k][0];
if (Valid(x,y)==false) continue;
char pp ='0';
int a=0;
for (int p=0;p<n;p++) {
char t = G[p][j];
if (i==p) t = G[x][y];
if (t!=pp) {
mx = Math.max(mx, a);
pp=t; a=1;
}
else a+=1;
}
mx = Math.max(mx, a);
pp ='0';
a=0;
for (int p=0;p<n;p++) {
char t = G[i][p];
if (p==y) t = G[i][j];
else if (p==j) t = G[i][y];
if (t!=pp) {
mx = Math.max(mx, a);
pp=t; a=1;
}
else a+=1;
}
mx = Math.max(mx, a);
}
}
}
System.out.println(mx);
}
}
|
cs |
- ์ด ๊ฒฝ์ฐ ์ฑ๊ณตํ๋ค.
ํจ์จํ๋ฅผ ์ํ ์ธ๋ถ์ฌํญ
- int[][] div์ ๊ฒฝ์ฐ [x][0]์ ๋ฐ๋๋ ๊ฒ ์์ด 0์ผ๋ก ๋์ด์๊ธฐ์ ์ผ์ฐจ์ ๋ฐฐ์ด๋ก ์์ ํ๋๊ฒ์ด ๋ถํ์ํ ๋ถ๋ถ์ ์ค์ผ ์ ์์ ๊ฒ ๊ฐ๋ค.
- ๋ฐ๋๋ 2์์ ์ฌํ์ด ์๋ค๋ฉด ๊ทธ๊ฒ์ ๊ธฐ์ค์ผ๋ก j์ j+1,๊ทธ๋ฆฌ๊ณ i์ ๋ํด ๋ณํ ์ดํ์ ์ต๋์ฐ์ ๊ธธ์ด๋ฅผ ์ฐพ๋๋ค. ํจ์จํ๋ฅผ ์ํด ๋ฐ๋๋ 2์์ ๊ฐ์ง์๋ง ๊ฐ์ง๊ณ ๋ค์์ 3๊ฐ์ง ๊ฒฝ์ฐ์ ๋ํ ๊ธธ์ด๋ฅผ ์ฐพ๋๋ค. (์์ ์์ค์ฝ๋์์๋ ๊ฒน์น๋ ๋ถ๋ถ์ด ์กด์ฌํ๋ค.)
ํ๊ธฐ
- ์ค๋ฒ 2์ ๋์ด๋๋ก ์ฌ์ดํธ์ด์ง๋ง ๊ณ ๋ คํ์ง ๋ชปํ ๋ถ๋ถ์ด ๋ง์ ์๊ฐ๋ณด๋ค ์๊ฐ์ ์ด ๋ฌธ์ ์๋ค.
- ์ด๋ ํ ์์ ์ด ์ผ์ด๋ฌ์๋ ์ด๋ ๋ฒ์๊น์ง ์ํฅ์ ๋ฏธ์น๋์ง๋ฅผ ํ์ธํ๋ฉด์ ๋ฌธ์ ๋ฅผ ํ์..
'Coding > ๋ฐฑ์ค ๋ฌธ์ ํ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| (ํ์ด์ฌ) ๋ฐฑ์ค 4991๋ฒ : ๋ก๋ด ์ฒญ์๊ธฐ (0) | 2026.01.09 |
|---|---|
| (JAVA) ๋ฐฑ์ค 3197๋ฒ : ๋ฐฑ์กฐ์ ํธ์ (0) | 2024.10.07 |
| (JAVA) ๋ฐฑ์ค 10026๋ฒ : ์ ๋ก์์ฝ (0) | 2023.04.03 |
| (ํ์ด์ฌ) ๋ฐฑ์ค 2839๋ฒ : ์คํ ๋ฐฐ๋ฌ (0) | 2022.07.21 |
| (ํ์ด์ฌ) ๋ฐฑ์ค 2775๋ฒ : ๋ถ๋ ํ์ฅ์ด ๋ ํ ์ผ (0) | 2022.07.06 |
Comment