seong
백준 3052번 본문
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// 나누는 값은 42.
Scanner sc = new Scanner(System.in);
int arry[] = new int[10];//배열의 크기 = 10
int cont = 0;
for (int i = 0; i < arry.length; i++) {// 0~9 까지 총 10개
arry[i] = sc.nextInt() % 42;// 배열에 숫자 저장
}
for(int i = 0; i < arry.length; i++) {
int tmp = 0;
for (int j = i + 1; j < arry.length; j++) {
if (arry[i] == arry[j]) {
tmp++;
}
}
if (tmp == 0) {
cont++;
}
}
System.out.println(cont);
}
}
- i = 1일 경우
- arry[1]에 있는 값과 arry[2]에 있는 값을 비교해 같다면 tmp를 1증가
- for문을 빠져나오고 아래의 if문에서 tmp 가 현재 증가하지 않았으므로
- cont를 1증가 → 반복
- 다른 풀이 방법(Hashset) - 두번째 풀이 출처 - Copyright © ST_.
import java.util.Scanner;
import java.util.HashSet;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
HashSet<Integer> a = new HashSet<Integer>();
for (int i = 0; i < 10; i++) {
a.add(sc.nextInt() % 42);
}
in.close();
System.out.print(a.size());
}
}
- Hashset을 선언한 후 → 반복문에서 Hashset안에 나눈 나머지 값들을 모두 넣어준다
- 여기서 Hashset은 이미 가지고 있는 값이 라면 저장을 하지 않는다.
- 그러므로 중복된 값들을 걸러낼 수 있다.
'알고리즘 > 백준' 카테고리의 다른 글
백준 8958번 (배열에서 인덱스 값 비교 해주는 charAt()) (0) | 2022.07.29 |
---|---|
백준 1546번 (0) | 2022.07.29 |
백준 2577번 (0) | 2022.07.29 |
백준 2562번 (0) | 2022.07.29 |
백준 10818번 (배열 start- Arrays.sort메소드 - 배열내에서 숫자 크기 정렬) (0) | 2022.07.29 |