BOJ|3052号
Pythonプール N = [] #빈 list생성
for _ in range(10): #10개의 숫자를 입력받음
N.append(int(input())%42)
N = set(N) #리스트를 set으로 바꿔줌
print(len(N)) #N의 길이 출력
setは、List、DickShownery、Tupleなどのデータを含むコンテナの1つです.集合の特徴は
1.繰り返しは許可されません.
2.順序がない.(unordered collection)
setには順序がないのでインデックスはできません.次のように設定
宣言はset = {1, 2, 4, 6, 3}
のように辞書に似ている.dictionaryはキーを使用してインデックスを行うため、setインデックスを持つバージョンはdictionaryと見なすことができます.
とにかく.setは重複が許されないので,「異なる」個数を求める問題で残りを全て求め,その後重複を取り除き,異なる残りのみを残すのでsetで解いた.
C++プール #include <algorithm>
#include <vector>
#include <iostream>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
vector<int> arr; //vector arr 선언
int n;
for (int i = 0; i < 10; i++) {
cin >> n; //10개의 숫자 입력
arr.push_back(n % 42); //입력 후 바로 vector에 42로 나눈 나머지 추가
}
sort(arr.begin(), arr.end()); //vector 정렬
arr.erase(unique(arr.begin(), arr.end()),arr.end()); //vector 중복 제거
cout << arr.size(); //vector의 크기 출력
}
C++にもsetがあります.ヘッダーに#include <set>
と表示し、set<int> s
でsetを作り、1つずつ加算すればいいです.
このプールは、ベクトル重複要素を除去する方法であり、重複を除去する前に、まずsort
に並べ替える.理由は以下の通り.#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
vector<int> v = { 1,5,2,3,3,2,1,5 };
unique(v.begin(), v.end());
for (int i : v) cout << i << '\n';
}
1 1 2 2 3 3 5 5
/*
결과 :
1
5
2
3
2
1
5
5
*/
リンクテキスト
上のリンクでは理由が説明されていますので、おすすめします!
Reference
この問題について(BOJ|3052号), 我々は、より多くの情報をここで見つけました
https://velog.io/@hrpp1300/BOJ-3052번
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
N = [] #빈 list생성
for _ in range(10): #10개의 숫자를 입력받음
N.append(int(input())%42)
N = set(N) #리스트를 set으로 바꿔줌
print(len(N)) #N의 길이 출력
#include <algorithm>
#include <vector>
#include <iostream>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
vector<int> arr; //vector arr 선언
int n;
for (int i = 0; i < 10; i++) {
cin >> n; //10개의 숫자 입력
arr.push_back(n % 42); //입력 후 바로 vector에 42로 나눈 나머지 추가
}
sort(arr.begin(), arr.end()); //vector 정렬
arr.erase(unique(arr.begin(), arr.end()),arr.end()); //vector 중복 제거
cout << arr.size(); //vector의 크기 출력
}
C++にもsetがあります.ヘッダーに#include <set>
と表示し、set<int> s
でsetを作り、1つずつ加算すればいいです.このプールは、ベクトル重複要素を除去する方法であり、重複を除去する前に、まず
sort
に並べ替える.理由は以下の通り.#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
vector<int> v = { 1,5,2,3,3,2,1,5 };
unique(v.begin(), v.end());
for (int i : v) cout << i << '\n';
}
1 1 2 2 3 3 5 5
/*
결과 :
1
5
2
3
2
1
5
5
*/
リンクテキスト 上のリンクでは理由が説明されていますので、おすすめします!
Reference
この問題について(BOJ|3052号), 我々は、より多くの情報をここで見つけました https://velog.io/@hrpp1300/BOJ-3052번テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol