250x250
반응형
Notice
Recent Posts
Recent Comments
Link
N
(SWEA c++)1216. [S/W 문제해결 기본] 3일차 - 회문2 본문
728x90
반응형
1215 회문1 문제와 비슷하다.
다만 가장 긴 회문의 길이만 찾아서 출력하면 된다.
while문으로 가장 긴 회문을 찾을 때까지 반복.
n = 100 ~ 0까지, 현재 회문의 길이를 나타낸다.
회문의 길이가 100부터 시작하므로
맨 처음 찾은 회문의 길이가 가장 큰 값을 나타낸다.
가로, 세로를 검사하여 확인해주면 된다.
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main(void)
{
for(int t = 1; t <= 10; t++)
{
vector<string> v;
int n, max = 0;
string s;
bool flag = true;
cin >> n;
for(int i = 0; i < 100; i++)
{
cin >> s;
v.push_back(s);
}
n = 100;
while(flag)
{
//row check
for(int i = 0; i < 100; i++)
{
for(int j = 0; j <= 100 - n; j++)
{
bool rowKeep = true;
for(int k = 0; k < n / 2; k++)
{
if(v[i][j + k] != v[i][j + n - k - 1])
{
rowKeep = false;
}
}
if(rowKeep)
{
max = n;
flag = false;
break;
}
}
}
//col check
for(int i = 0; i <= 100 - n; i++)
{
for(int j = 0; j < 100; j++)
{
bool colKeep = true;
for(int k = 0; k < n / 2; k++)
{
if(v[i + k][j] != v[i + n - k - 1][j])
{
colKeep = false;
}
}
if(colKeep)
{
max = n;
flag = false;
break;
}
}
}
n--;
}
cout << "#" << t << " " << max << endl;
}
return 0;
}
728x90
반응형
'SW Expert Academy' 카테고리의 다른 글
(SWEA c++)1220. [S/W 문제해결 기본] 5일차 - Magnetic (0) | 2020.10.12 |
---|---|
(SWEA c++)1217. [S/W 문제해결 기본] 4일차 - 거듭 제곱 (0) | 2020.10.12 |
(SWEA c++)1215. [S/W 문제해결 기본] 3일차 - 회문1 (0) | 2020.10.08 |
(SWEA c++)1213. [S/W 문제해결 기본] 3일차 - String (0) | 2020.10.07 |
(SWEA c++)1209. [S/W 문제해결 기본] 2일차 - Sum (0) | 2020.10.07 |