[백준 3052]나머지

최대 1 분 소요

문제

두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다.

수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오.






내 풀이

나는 배열안에서 탐색으로 해결하려했는데 boolean 배열에 담아서
true 값일때만 카운트하는게 너무 신박하다 . . . 어떻게 이런 생각을 하지 





무릎을 탁 치는 코드

class Main
{
	public static void main (String[] args) throws java.lang.Exception
	{
	    BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        
        boolean[] arr = new boolean[42];
        int count = 0;
        
        for(int i=0; i<10; i++){
            arr[Integer.parseInt(bf.readLine())%42] = true; 
        }
        
        for(boolean value : arr){
            if(value){
                count++;
            }
        }
        
        System.out.println(count);
	    
	}
}