반응형
서로 다른 값이 몇 개 있는지 출력하는 방법을 이것저것 시도해보았지만 도저히 떠오르는 게 없어서 방법을 찾아보게 되었다. 그러다 HashSet을 이용하면 쉽게 해결할 수 있다는 것을 알게 되었다.
HashSet
HashSet은 Set 인터페이스의 구현 클래스인데, 중복되는 데이터를 자동으로 제거해준다는 장점이 있다.
그런 점에서 서로 다른 값이 몇 개 있는지 출력하는 이 문제에서 딱 필요한 것이었다.
1. Scanner를 이용한 방법
import java.util.Arrays;
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
Integer[] num = new Integer[10];
Set<Integer> set = new HashSet<Integer>();
for(int i=0; i<=9; i++){
num[i] = sc.nextInt();
set.add(num[i] % 42);
}
System.out.println(set.size());
sc.close();
}
}
2. BufferedReader를 이용한 방법
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;
public class Main{
public static void main(String[] args)throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Integer[] num = new Integer[10];
HashSet<Integer> set = new HashSet<Integer>();
for(int i=0; i<num.length; i++){
num[i] = Integer.parseInt(br.readLine());
set.add(num[i] % 42);
}
System.out.println(set.size());
br.close();
}
}
HashSet에 num[i]%42를 한 값을 넣어주고 HashSet이 자동으로 중복을 제거해주기 때문에 set.size()를 이용해서 크기를 구하면 된다.
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 1546 - 평균 (0) | 2024.02.20 |
---|---|
[백준] 10811 - 바구니 뒤집기 (0) | 2024.02.19 |
[백준] 5597 - 과제 안 내신 분..? (0) | 2024.02.17 |
[백준] 10813 - 공 바꾸기 (0) | 2024.02.16 |
[백준] 10810 - 공 넣기 (0) | 2024.02.15 |