백준 3052번 : 나머지 자바 HashSet 사용

728x90

www.acmicpc.net/problem/3052

 

3052번: 나머지

각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다.

www.acmicpc.net


HashSet

자바 Collection 중 Set의 대표적인 HashSet 클래스. HashSet은 Set의 파생클래스로 Set은 기본적으로 집합으로 중복된 원소를 허용하지 않습니다. HashSet은 순서 역시 고려가 되지 않습니다. 

import java.util.*;
import java.io.*;
class Main{
    public static void main(String args[]) throws IOException {
       
       BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
       HashSet<Integer> hs = new HashSet<Integer>();
       
       for(int i=0; i<10; i++){
           hs.add(Integer.parseInt(br.readLine()) % 42);
       }
       
       System.out.println(hs.size());
    }      
} 

 

 

HashSet를 Integer형으로 생성합니다.

 

BufferedReader 를 통해 숫자를 한개씩 입력 받습니다.

 

숫자를 입력 받을 때 마다 42로 나눈 나머지를 HashSet에 한개씩 저장합니다.

 

이 때 HashSet은 Integer형으로 Buffer로 읽은 값을 형변환 해줍니다.

 

HashSet은 중복값을 허용하지 않고 순서도 고려하지 않기 때문에 

 

중복되지 않은 값들이 저장되고 size()를 통해 출력하면 되겠습니다.

반응형