JavaStudy-0053:集合集計
12456 ワード
合計時間制限:3000 msメモリ制限:50000 kB
既知の集合Aと集合Bを記述し、第1の集合内のデータは一意である.A,B集合を求めて新しい集合Cに統合し,C集合内のデータも一意であることを要求する.C集合の個数を指摘する.
3行入力、1行目が集合A,Bの個数第2行A集合のデータ第3行B集合のデータ出力2行第1行集合Cの個数第2行C集合のデータ出力
サンプル入力
サンプル出力
Acceptedコード
追加:
既知の集合Aと集合Bを記述し、第1の集合内のデータは一意である.A,B集合を求めて新しい集合Cに統合し,C集合内のデータも一意であることを要求する.C集合の個数を指摘する.
3行入力、1行目が集合A,Bの個数第2行A集合のデータ第3行B集合のデータ出力2行第1行集合Cの個数第2行C集合のデータ出力
サンプル入力
4 5
12 34 56 78
34 67 89 34 76
サンプル出力
7
12 34 56 78 67 89 76
Acceptedコード
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int[] a=new int[100];
int ans=0;
int n=in.nextInt();
int m=in.nextInt();
for (int i=0;i<n;i++)
a[i]=in.nextInt();
for (int i=n;i<m+n;i++)
a[i]=in.nextInt();
for(int i=0;i<m+n;i++)
for(int j=0;j<i-1;j++)
if(a[i]==a[j] && a[i]!=300000) {
ans++;a[i]=300000;
}
System.out.println(m+n-ans);
for (int i=0;i<m+n;i++)
if(a[i]!=300000)
System.out.print(a[i]+" ");
in.close();
}
}
追加:
import java.util.LinkedHashSet;
import java.util.Scanner;
import java.util.Set;
public class Main {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
Set<Integer> set=new LinkedHashSet<Integer>();
int m=in.nextInt();
int n=in.nextInt();
for(int i=0;i<m+n;i++) {
set.add(in.nextInt());
}
System.out.println(set.size());
for(Integer i:set) {
System.out.print(i+" ");
}
in.close();
}
}