알고리즘

백준 5555번: 반지

mezo 2020. 2. 16. 20:21
728x90
반응형

 

 

 

 

 

 

bool 을 사용하여 알파벳을 찾을때 

일치하는지 확인하는 것보다 일치하지않는 철자가 나올경우 바로 false로 바꾸고 break하는 것이 더 효율적이다.

3중 for문을 사용한다.

 

 

#include <iostream>
#include <string>
#include <vector>
using namespace std;

int main(void) {
	ios_base::sync_with_stdio(0);
	cin.tie(0);

	string s;
	int n;
	int cnt = 0;
	
	cin >> s;
	cin >> n;

	vector<string> v(n);

	for (int i = 0; i < n; i++) {
		cin >> v[i];
		bool ring = false;
		for (int j = 0; j < 10; j++) {
			if (v[i][j] == s[0]) {
				bool flag = true;
				for (int k = 0; k < s.length(); k++) {
					if (v[i][(j + k) % 10] != s[k]) {
						flag = false;
						break;
					 }
				}
				if (flag) {
					ring = true;
					break;
				}
			}
		}
		if (ring)
			cnt++;
	}
	cout << cnt << endl;
	
	return 0;
}
728x90
반응형