알고리즘

C++

삶은겨란 2022. 10. 28. 18:40

pair값을 sort

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

bool compare(pair<int, int> a, pair<int, int> b) {
	if (a.first == b.first) {
		return a.second < b.second;

	}
	else {
		return a.first < b.first; // first값을 기준으로 오름차순
	}
}

int main() {
	
	vector<pair<int, int>> v;
	int a,b;
	for (int i = 0; i < 5; i++) {
		cin >> a >> b;
		v.push_back({ a,b });
	}

	sort(v.begin(), v.end(), compare);

	for (auto i : v) {
		cout << i.first << " " << i.second << "\n";
	}

	return 0;
}

 

 

벡터안에 값이 있는지 확인하기

find(v.begin(), v.end(), 찾는 값) == v.end() => 해당 값이 존재하지 않음

find(v.begin(), v.end(), 찾는 값) - v.begin() => 찾는 값이 존재하는 인덱스 (거리를 이용해 찾음)

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;


int main() {
	int n,cnt=0;
	string s;
	cin >> n;
	
	for (int k = 0; k < n;k++) {
		vector<char> v;
		cin >> s;

		for (int i = 0; i < s.length(); i++) {
			if(find(v.begin(), v.end(), s[i])==v.end()) { // 벡터에 없으면
				v.push_back(s[i]);
			}
			else { // 벡터내에 있으먄
				if (s[i] != s[i - 1]) {//앞에 있는지 확인해서 같지 않으면
					cnt++;
					break;
				}
			}
		}
	}
	cout << n - cnt<<endl;
	return 0;
}