3일차-회문1

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=3&contestProbId=AV14QpAaAAwCFAYi&categoryId=AV14QpAaAAwCFAYi&categoryType=CODE&problemTitle=&orderBy=SUBMIT_COUNT&selectCodeLang=ALL&select-1=3&pageSize=10&pageIndex=2

#include<iostream>
#include<string>
#include<cstring>
#include<algorithm>
#include<set>
#include <vector>

using namespace std;

char arr[8][8];
int iAnswer(0);


void check(vector<char> &vTemp)
{
	int iSize = vTemp.size() / 2;//사이즈가 짝이든 홀수이든 이만큼 반복합니다.
	int iFront = 0; int iLast = vTemp.size() - 1;
	int ichk = 0;
	for (int i = 0; i < iSize; i++)//몫만큼만 반복합니다.
	{
		if (vTemp[iFront] != vTemp[iLast])
		{
			return;
		}
		else
		{
			iFront++; iLast--;
			if ((vTemp[iFront] == vTemp[iLast]) && (i == iSize - 1))
			{
				iAnswer++;
				return;
			}
		}
	}
}

int main(void)
{
	for (int m = 1; m <= 10; m++)
	{
		vector<string> vTemp;
		int iTemp; cin >> iTemp;

		for (int j = 0; j < 8; j++)
		{
			string s;
			cin >> s;
			vTemp.emplace_back(s);
		}
		
		if(iTemp == 1)			cout << "#" << m << " " << 64 << endl;
		else
		{
			for (int i = 0; i <= 8 - (iTemp); i++)
			{
				for (int j = 0; j < 8; j++)
				{
					bool flag = true;
					for (int l = 0; l < iTemp / 2; l++)
					{
						if(vTemp[i+l][j]!=vTemp[i+iTemp-1-l][j])
						{
							flag = false; break;
						}
					}
					if (flag) iAnswer++;
				}
			}

			for (int i = 0; i < 8; i++)
			{
				for (int j = 0; j <= 8 - (iTemp); j++)
				{
					bool flag = true;

					for (int l = 0; l < iTemp / 2; l++)
					{
						if (vTemp[i][j + l] != vTemp[i][j + iTemp - 1 - l])
						{
							flag = false; break;
						}
					}
					if (flag) iAnswer++;
				}
			}

		}

		cout << "#" << m << " " << iAnswer<<endl;
		iAnswer = 0;
	}
	return 0;
}

좋은 웹페이지 즐겨찾기