1. 배열에 담은 후 앞에 저장된 값들과 비교해서 중복이면 -1 입력하는 방법으로 품
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int[] nArr = new int[10];
for(int i=0; i<10; i++) {
nArr[i]=s.nextInt()%42; // 값을 넣고
for(int j=0; j<i; j++) {
if(nArr[i]==nArr[j]) {
nArr[i]=-1; // 중복이면 -1 입력
break;
}
}
}
int count=0;
for(int a : nArr) {
if(a!=-1) {
count+=1;
}
}
System.out.println(count);
}
2. HashSet
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
/*
* HashSet
* - 중복되는 원소를 넣을 경우 하나만 저장함(중복X)
* - 순서 개념이 없다 정렬을 하고싶다면 list로 변환 후 정렬
* */
HashSet<Integer> h = new HashSet<>();
for(int i=0; i<10; i++) {
h.add(s.nextInt()%42);
}
System.out.println(h.size());
}
3. boolean 배열
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
/*
* 나머지가 나올 수 있는 수 0~41까지 42개이므로 길이가 42인 boolean 배열
* 입력받은 나머지값의 index를 true로 바꾼 후 true값인 배열의 원소 개수를 셈
* */
boolean[] b = new boolean[42];
for(int i=0; i<10; i++) {
int n = s.nextInt()%42;
b[n]=true;
}
int count=0;
for(int i=0; i<b.length; i++) {
if(b[i]) count++;
}
System.out.println(count);
}
댓글