๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/3085)
< ์ฌํ ๊ฒ์ >
๋ฌธ์ ํ์ด
๋ชจ๋ ๊ฒฝ์ฐ์ ์ฌํ์ ์์ด ๋ค๋ฅธ ์ธ์ ํ ๋ ์นธ์ ๊ตํํ๋ค. ๊ตํํ ํ ๊ฐ์ ์์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ ๊ฐ์ฅ ๊ธด ์ฐ์ ๋ถ๋ถ์ ๊ณ ๋ฅธ๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class _3085_ { // ์ฌํ ๊ฒ์
static char arr[][];
static int n, max;
static int dx[] = { 1, 0 };
static int dy[] = { 0, 1 };
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
n = Integer.parseInt(bf.readLine());
arr = new char[n][n];
max = 0;
for (int i = 0; i < n; i++) {
String str = bf.readLine();
for (int j = 0; j < n; j++) {
arr[i][j] = str.charAt(j);
}
}
candy();
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
change(i, j);
}
}
System.out.println(max);
}
private static void change(int x, int y) {
for (int i = 0; i < 2; i++) {
int a = x + dx[i];
int b = y + dy[i];
if (a >= 0 && a < n && b >= 0 && b < n && arr[x][y] != arr[a][b]) {
char tempx = arr[x][y];
char tempy = arr[a][b];
arr[x][y] = tempy;
arr[a][b] = tempx;
candy();
arr[x][y] = tempx;
arr[a][b] = tempy;
}
}
}
private static void candy() {
char x, y;
int cnt1, cnt2;
for (int i = 0; i < n; i++) {
x = arr[i][0];
y = arr[0][i];
cnt1 = 1;
cnt2 = 1;
for (int j = 1; j < n; j++) {
if (arr[i][j] == x) {
cnt1 += 1;
} else {
if (max < cnt1) {
max = cnt1;
}
x = arr[i][j];
cnt1 = 1;
}
if (arr[j][i] == y) {
cnt2 += 1;
} else {
if (max < cnt2) {
max = cnt2;
}
y = arr[j][i];
cnt2 = 1;
}
}
if (max < cnt1) {
max = cnt1;
}
if (max < cnt2) {
max = cnt2;
}
}
}
}
๋ณ์)
n : ๋ณด๋์ ํฌ๊ธฐ
arr : ๋ณด๋ ์ ๋ณด
max : ๋จน์ ์ ์๋ ์ฌํ์ ์ต๋ ๊ฐ์
๋ณด๋์ ์ ๋ณด๋ฅผ ์ ๋ ฅ๋ฐ์ ํ candy ํจ์๋ฅผ ํธ์ถํด ์ฌํ์ ๊ตํํ์ง ์์ ์ํ์์ ๋จน์ ์ ์๋ ์ฌํ์ ์ต๋ ๊ฐ์๋ฅผ ๊ตฌํ๋ค. ๋ณด๋๋ฅผ ํ์ํ๋ฉฐ ์ฌํ์ ๊ตํํ ์ ์๋ ๊ฒฝ์ฐ๋ฅผ ์ฐพ๊ธฐ ์ํด change ํจ์๋ฅผ ํธ์ถํ๋ค. ์ต์ข ๋จน์ ์ ์๋ ์ฌํ์ ์ต๋ ๊ฐ์์ธ max๋ฅผ ์ถ๋ ฅํ๋ค.
change (์ขํ)
ํ์ฌ ์ขํ์ ์๋์ ์ค๋ฅธ์ชฝ์ ํ์ํ์ฌ ๋ณด๋ ๋ฒ์ ์์ด๊ณ , ์ฌํ์ ์์ด ๋ค๋ฅด๋ค๋ฉด ์ฌํ์ ๊ตํํ๋ค. ๊ทธ ํ ์ฌํ์ ์ต๋ ๊ฐ์๋ฅผ ๊ตฌํ๊ธฐ ์ํด candy ํจ์๋ฅผ ํธ์ถํ๋ค.
candy
๊ฐ๊ฐ ํ ํ์, ์ด ํ์์ ํตํด ๋จน์ ์ ์๋ ์ฌํ์ ์ต๋ ๊ฐ์๋ฅผ ๊ตฌํ๋ค.
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 10451_์์ด ์ฌ์ดํด (0) | 2024.02.09 |
---|---|
[Baekjoon] 3758_KCPC (0) | 2024.02.08 |
[Baekjoon] 2578_๋น๊ณ (1) | 2024.02.06 |
[Baekjoon] 19238_์คํํธ ํ์ (1) | 2024.02.05 |
[Baekjoon] 1167_ํธ๋ฆฌ์ ์ง๋ฆ (1) | 2024.02.02 |