Tags
- ๊ทธ๋ํ ํ์
- DP
- ๋ฐฑํธ๋ํน
- ๋ฌธ์์ด
- dfs
- greedy
- ์ ๋ ฌ
- Brute Force Algorithm
- queue
- SpringBoot
- Python
- Dynamic Programming
- BOJ
- ์๋ฎฌ๋ ์ด์
- BFS
- Java
- ๊ต์ฌ
- PGM
- ์๋ฃ๊ตฌ์กฐ
- LV2
- ๊ตฌํ
- ์ ์๋ก
- Study
- ๊น์ด ์ฐ์ ํ์
- ๊ทธ๋ํ ์ด๋ก
- ์ํ
- stack
- ๋๋น ์ฐ์ ํ์
- CodingTest
- sort
Archives
๊ธฐ๋ก๋ฐฉ
BOJ_3085 : ์ฌํ ๊ฒ์ ๋ณธ๋ฌธ
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- n X n ๋ก ์ฌํ์ด ์๋ค.
- ์ฌํ์ ์ข ๋ฅ๋ C, P, Z, Y๊ฐ ์๋ค.
- ์ธ์ ํ ๋ ์นธ์ ๊ณจ๋ผ ์ฌํ์ ๊ตํํ๋ค.
- ๊ฐ์ ์์ผ๋ก ์ด๋ฃจ์ด์ง ํ ๋๋ ์ด ์ค ๋จน์ ์ ์๋ ์ฌํ์ ์ต๋๊ฐ์ ์ถ๋ ฅํ๋ค.
- ํ์ด
- ์ต๋๊ฐ์ ์ฐพ๊ธฐ ์ํด์๋ ๊ตํํ ์ ์๋ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ์ฐพ์์ผ ํ๋ค.
- ์ฌํ ๊ตํ์ ์๋ ํน์ ์ค๋ฅธ์ชฝ์ผ๋ก๋ง ์ด๋ํ๋ฉฐ ์งํํ๋ค.
- ๊ฐ๊ฐ์ ๊ฒฝ์ฐ์ ๋์ค๋ ์ฐ์๋ ์ฌํ์ ์ต๋๊ฐ์ ์ ์ฅํ๋ค.
- ์ฌํ์ ์ต์๊ฐ์ 1์ด๋ค.
- ์ต๋๊ฐ์ ์ถ๋ ฅํ๋ค.
- ์ต๋๊ฐ์ ์ฐพ๊ธฐ ์ํด์๋ ๊ตํํ ์ ์๋ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ์ฐพ์์ผ ํ๋ค.
๐ธ ์ฝ๋ ๐ธ
import java.util.Scanner;
public class Main {
static char[][] arr;
private static int countCandy(int n, int i, int j, int order, int max) {
char[][] candyes = new char[n][n];
for (int k = 0; k < n; k++) { // 2์ค ๋ฐ๋ณต๋ฌธ
for (int l = 0; l < n; l++) {
candyes[k][l] = arr[k][l];
}
}
if (order == 0) {
char temp = candyes[i][j];
candyes[i][j] = candyes[i + 1][j];
candyes[i + 1][j] = temp;
} else {
char temp = candyes[i][j];
candyes[i][j] = candyes[i][j + 1];
candyes[i][j + 1] = temp;
}
for (int k = 0; k < n; k++) {
int count = 1;
for (int l = 1; l < n; l++) {
if (candyes[k][l] == candyes[k][l - 1]) {
count++;
} else {
if (count > max) {
max = count;
}
count = 1;
}
}
if (count > max) {
max = count;
}
}
for (int k = 0; k < n; k++) {
int count = 1;
for (int l = 1; l < n; l++) {
if (candyes[l][k] == candyes[l - 1][k]) {
count++;
} else {
if (count > max) {
max = count;
}
count = 1;
}
}
if (count > max) {
max = count;
}
}
return max;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
arr = new char[n][n];
for (int i = 0; i < n; i++) {
String string = sc.next();
for (int j = 0; j < n; j++) {
arr[i][j] = string.charAt(j);
}
}
int answer = 1;
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n; j++) {
answer = countCandy(n, i, j, 0, answer);
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n - 1; j++) {
answer = countCandy(n, i, j, 1, answer);
}
}
System.out.println(answer);
}
}
๐ธ ์ฝ๋ ํด์ ๐ธ
- main ๋ฉ์๋์์ n X n ์ฌํ์ ์
๋ ฅ๋ฐ์ charํ ์ด์ฐจ์ ๋ฐฐ์ด arr์ ์ ์ฅํ๋ค.
- ์๋์ชฝ ์ฌํ๊ณผ ๊ตํํ ๋๋ ํ์ n-1๊ฐ ํ์ํ๋ค.
- ์ค๋ฅธ์ชฝ ์ฌํ๊ณผ ๊ตํํ ๋๋ ์ด์ n-1๊ฐ ํ์ํ๋ค.
- countCandy ๋ฉ์๋์์ ์ฐ์๋ ์ฌํ์ ์ต๋๊ฐ์ ๋ฐํํ๋ค.
- arr๋ฅผ candyes ๋ฐฐ์ด์ ๋ณต์ฌํ๋ค.
- order๊ฐ 0์ด๋ฉด ์๋์ชฝ, ์๋๋ผ๋ฉด ์ค๋ฅธ์ชฝ๊ณผ ์ฌํ์ ๊ตํํ๋ค.
- ํ ํ์์ ๊ฐ์ฅ ๊ธด ์ฐ์ ์ฌํ์ ์๋ฅผ ํ์ธํด answer์ ๋น๊ตํ๋ค.
- ํ ์ด์์ ๊ฐ์ฅ ๊ธด ์ฐ์ ์ฌํ์ ์๋ฅผ ํ์ธํด answer์ ๋น๊ตํ๋ค.
- answer๋ฅผ ์ถ๋ ฅํ๋ค.
๐ธ end ๐ธ
- ์ฒ์๋ถํฐ ํ์ด์ ๊ฐ์ ์ ๊ทผ ๋ฐฉ๋ฒ์ ์๊ฐํ์ง๋ง, ์๊ฐ์ด๊ณผ๊ฐ ๊ฑฑ์ ๋๋๋ฐ ๋ถ๋ฅดํธํฌ์ค ํ๊ทธ๋ฅผ ๋ณด๊ณ ๋ฏฟ์์ ๊ฐ์ก๋ค.
- countCandy ๋ฉ์๋์์ ํ๊ณผ ์ด์ ๊ฐ์ฅ ๊ธด ์ฐ์ ์ฌํ์ ์๋ฅผ ์ฐพ๋ for๋ฌธ์์ max๊ฐ์ ์ ์ฅํ๋ ์ฝ๋๋ฅผ ๋น ๋จ๋ ค์ 1ํ ํ๋ ธ๋ค.
- ์ด์ค for๋ฌธ์์ ์์ชฝ for๋ฌธ์ด ๋๋์ผ count๋ฅผ max์ ๋น๊ตํ์๋๋ฐ, ๋น๊ตํ๋ ์ฌํ์ด ์๋ก ๋ค๋ฅผ ๋์๋ max์ ๋น๊ตํด์ ์ ์ฅํด์ผํ๋ค.
- ๊ฒฐ๊ณผ์ ์ผ๋ก max๋น๊ต๋ฌธ์ด 2๋ฒ์ฉ ๋ค์ด๊ฐ์ผํ๋ค.
728x90
'CodingTest > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ_10610 : 30 (0) | 2023.01.16 |
---|---|
BOJ_2960 : ์๋ผํ ์คํ ๋ค์ค์ ์ฒด (0) | 2023.01.16 |
BOJ_2304 : ์ฐฝ๊ณ ๋ค๊ฐํ (0) | 2023.01.15 |
BOJ_10972 : ๋ค์ ์์ด (0) | 2023.01.14 |
BOJ_2563 : ์์ข ์ด (0) | 2023.01.13 |