24. Sets-STL
[ 난이도: Easy | 분야: STL ]
1. 내용 정리
Sets는 C++ STL의 일부이다. Sets는 특별한 순서를 따르는 독특한 요소들을 저장하는 역할을 한다.
아래는 sets에서 주로 사용하는 함수들이다:
정의
set<int> s; // Creates a set of integers
크기
int length = s.size(); // Gives the size of the set.
삽입
s.insert(x); // Inserts an integer x into the set s.
요소 삭제
s.erase(val); // Erases an integer val from the set s.
요소 찾기
set<int>::iterator itr=s.find(val); // Give the iterator to the element val if it is found otherwise returns s.end().
2. 과제
이번 문제에서는 Q개의 쿼리가 주어진다. 각 쿼리는 아래의 세 개의 형식 중 하나에 해당한다:
1 x : 요소 x를 set에 추가한다.
2 x : 요소 x를 set에서 제거한다. (x가 현재 set에 없다면, 행동을 취하지 마라)
3 x : 요소 x가 set에 있다면, Yes를 출력하고 없다면 No를 출력해라
입력 형식
첫 번째 줄은 쿼리의 개수인 Q를 포함한다.
다음 Q개의 줄은 각각 1개의 쿼리를 갖는다. 각 쿼리는 두 개의 정수 y와 x를 가지고 있는데 y는 쿼리 형식을, x는 정수를 의미한다.
제약 사항
Q는 1보다 크거나 같고 10^5보다 작거나 같다.
y는 1보다 크거나 같고 3보다 작거나 같다.
x는 1보다 크거나 같고 10^9보다 작거나 같다.
출력 형식
쿼리 형식이 3이라면 x라는 정수가 set에 있다면 Yes를 없다면 No를 출력해라.
각 3 형식의 쿼리는 새로운 줄에 출력된다.
입력 예시
8
1 9
1 6
1 10
1 4
3 6
3 14
2 6
3 6
출력 예시
Yes
No
No
문제
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <set>
#include <algorithm>
using namespace std;
int main() {
/* Enter your code here. Read input from STDIN. Print output to STDOUT */
return 0;
}
더보기
정답
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <set>
#include <algorithm>
using namespace std;
int main() {
/* Enter your code here. Read input from STDIN. Print output to STDOUT */
int q = 0; // Number of lines
cin >> q;
set<int> s; // create set
for(int i = 0; i < q; i++) {
int type; int myNum; // Input
cin >> type >> myNum;
// Type 1
if(type == 1) {
s.insert(myNum);
}
// Type 2
else if(type == 2) {
set<int>::iterator itr=s.find(myNum);
// If Exist
if(itr != s.end()) {
s.erase(myNum);
}
// If not exist, nothing to do.
}
// Type 3
else {
set<int>::iterator itr=s.find(myNum);
if(itr != s.end()) {
cout << "Yes" << endl;
}
else {
cout << "No" << endl;
}
}
}
return 0;
}
©️Hackerrank. All Rights Reserved.
'프로그래밍 언어 > C, C++' 카테고리의 다른 글
[Hackerrank] 26. Print Pretty (0) | 2024.02.21 |
---|---|
[Hackerrank] 25. Maps-STL (0) | 2024.02.20 |
[Hackerrank] 23. Lower-Bound STL (0) | 2024.02.20 |
[Hackerrank] 22. Vector-Erase (0) | 2024.02.19 |
[Hackerrank] 21. Vector-Sort (0) | 2024.02.19 |