250x250
반응형
Notice
Recent Posts
Recent Comments
Link
N
(SWEA c++)1215. [S/W 문제해결 기본] 3일차 - 회문1 본문
728x90
반응형
test case는 10번으로 고정 반복.
8 x 8로 고정된 크기로 string을 입력받아 vector에 저장한다.
size는 회문의 크기를 나타내고,
size == 1이면 모든 단어가 회문이므로 64를 출력한다.
size가 1이 아니라면 가로, 세로를 검사해야 한다.
8 x 8이라 시간은 충분하므로 가로, 세로를 각각 for문을 돌려 체크를 해주면 된다.
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main(void)
{
for(int i = 1; i <= 10; i++)
{
int size, ans = 0;
vector<string> v;
cin >> size;
for(int j = 0; j < 8; j++)
{
string s;
cin >> s;
v.push_back(s);
}
if(size == 1)
cout << "#" << i << " " << 64 << endl;
else
{
for(int j = 0; j < 8; j++)
{
for(int k = 0; k <= 8 - size; k++)
{
bool rowKeep = true;
for(int l = 0; l < size / 2; l++)
{
if(v[j][k + l] != v[j][k + size - l - 1])
rowKeep = false;
}
if(rowKeep)
ans++;
}
}
for(int j = 0; j <= 8 - size; j++)
{
for(int k = 0; k < 8; k++)
{
bool colKeep = true;
for(int l = 0; l < size / 2; l++)
{
if(v[j + l][k] != v[j + size - l - 1][k])
colKeep = false;
}
if(colKeep)
ans++;
}
}
}
cout << "#" << i << " " << ans << endl;
}
return 0;
}
728x90
반응형
'SW Expert Academy' 카테고리의 다른 글
(SWEA c++)1217. [S/W 문제해결 기본] 4일차 - 거듭 제곱 (0) | 2020.10.12 |
---|---|
(SWEA c++)1216. [S/W 문제해결 기본] 3일차 - 회문2 (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 |
(SWEA c++)1208. [S/W 문제해결 기본] 1일차 - Flatten (0) | 2020.10.07 |