1일1알

백준 1544번 사이클 단어 C++ 본문

알고리즘

백준 1544번 사이클 단어 C++

영춘권의달인 2022. 5. 2. 14:43

출처 : https://www.acmicpc.net/problem/1544

 

picture이 주어지면 2개를 이어붙여서 picturepicture를 비교를 위한 벡터에 넣는다. 

picturepicture 안에서는 picture의 사이클 단어를 모두 포함하고 있기 때문에 이것을 이용하면 된다.

 

#include <iostream>
#include <string>
#include <vector>
#include <math.h>
#include <algorithm>
#include <utility>
#include <stack>
#include <queue>
#include <math.h>
#include <set>
#include <map>
#include <unordered_map>
#include <unordered_set>
#include <iomanip>

using namespace std;
using ll = long long;

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	vector<string> comp;
	int n;
	cin >> n;
	for (int i = 0; i < n; i++) {
		string str;
		cin >> str;
		bool isSame = false;
		for (int j = 0; j < comp.size(); j++) {
			if (comp[j].length() != str.length() * 2) continue;
			auto a = comp[j].find(str);
			if (a != string::npos) {
				isSame = true;
				break;
			}
		}
		if (!isSame) comp.push_back(str + str);
	}
	cout << comp.size();
};

'알고리즘' 카테고리의 다른 글

백준 2116번 주사위 쌓기 C++  (0) 2022.05.05
백준 1756번 피자 굽기 C++  (0) 2022.05.03
백준 1531번 투명 C++  (0) 2022.04.30
백준 1515번 수 이어 쓰기 C++  (0) 2022.04.29
백준 1417번 국회의원 선거 C++  (0) 2022.04.28