๐จ ๋ฌธ์
๋ฌธ์ ๋งํฌ: https://www.acmicpc.net/problem/1051
- ์๊ณ ๋ฆฌ์ฆ ๋ถ๋ฅ: ๊ตฌํ, ๋ธ๋ฃจํธํฌ์ค
- ๋์ด๋: Silver 3
๐ฌ ํ์ด
๋ ์๊ทผ ๊ตฌํ์ด ๊น๋ค๋ก์ ๋ ๋ฌธ์
- ํ ๊ธ์์ฉ ์ ๋ ฅ๋ฐ๊ธฐ โ scanf() ์ฌ์ฉ
- ๋ฅ์น๊ณ ์ด์คfor๋ฌธ ๋๋ฆฌ๊ธฐ
- N==1 or M==1์ด๋ฉด ๊ทธ๋ฅ 1. ๋.
- arr[i][j]๊ฐ ‘์ ์ฌ๊ฐํ์ ์ผ์ชฝ ์ ๊ผญ์ง์ ’์ด๋ผ ์๊ฐํ๊ณ ํ์ ์์
- ๊ฐ์ฅ ํฐ ๊ฑธ ๊ตฌํ๋ ๊ฑฐ๋๊น 1๋ถํฐ ๋์ง๋ง๊ณ ํฐ ๊ฒ๋ถํฐ ใ ใ . for (int k = min(N-i-1, M-j-1); k>0; k--)
- if (k < l) break; : ์๋ฅผ ๋ค์ด l=3์ธ๋ฐ ํ์ ๋จ์ ์ค์ด 2์ค ๋ฐ์ ์๋ค๋ฉด ํ ํ์ ์์.
‘๋ฌธ์์ด ์
๋ ฅ๋ฐ๋ ์ฌ๋ฌ ๊ฐ์ง ๋ฐฉ๋ฒ ์ด์ ๋ฆฌ’๋ฅผ ํด์ผ๊ฒ ๋ค. (์ธ์ ๊ฐ)
์
๋ ฅ ๋ฐฉ๋ฒ์ ๋ํด ๋งค๋ฒ ์ ํํ๊ฒ ์๊ณ ์๋ ๊ฒ ๊ฐ์ง ์์ผ๋ ๊ทธ๋๊ทธ๋ ์ ๋ฆฌํ ํ์๊ฐ ์๊ฒ ๋ค.
๐ฉ๐ป ์ฝ๋
C++
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cmath>
using namespace std;
int main() {
//freopen("input.txt", "rt", stdin);
int N, M;
cin >> N >> M;
int** arr = new int* [N];
for (int i = 0; i < N; i++) {
arr[i] = new int[M];
}
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
scanf("%1d", &arr[i][j]);
}
}
// arr[i][j]๊ฐ ์ ์ฌ๊ฐํ ์ผ์ชฝ ์ ๊ผญ์ง์ ์ด๋ผ๊ณ ์น๊ณ ๋ธ๋ฃจํธํฌ์ค
int l = 1;
if (N == 1 || M == 1) {
cout << 1;
return 0;
}
else {
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
for (int k = min(N - i - 1, M - j - 1); k > 0; k--) {
if (k < l) break;
if (arr[i][j] == arr[i][j + k]
&& arr[i][j] == arr[i + k][j]
&& arr[i][j] == arr[i + k][j + k]) {
l = max(k + 1, l);
break;
}
}
}
}
}
cout << l * l;
return 0;
}
'Coding Test > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] ๋ฐฑ์ค #11047. ๋์ 0 (C++) (0) | 2022.02.13 |
---|---|
[BOJ] ๋ฐฑ์ค #1251. ๋จ์ด ๋๋๊ธฐ (C++) (0) | 2022.02.13 |
[BOJ] ๋ฐฑ์ค #1010. ๋ค๋ฆฌ ๋๊ธฐ (C++) (0) | 2022.02.12 |
[BOJ] ๋ฐฑ์ค #1448. ์ผ๊ฐํ ๋ง๋ค๊ธฐ (C++) (0) | 2022.02.12 |
[BOJ] ๋ฐฑ์ค #2078. ๋ฌดํ์ด์งํธ๋ฆฌ (C++) (0) | 2022.02.12 |