알고리즘 풀이

[복습][백준]3052번: 나머지 - java 풀이

코디드 2023. 6. 15. 11:14
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));
		
		HashSet<Integer> hs = new HashSet<Integer>();
		
		for(int i=0; i<10; i++) {
			int num = Integer.parseInt(br.readLine());
			hs.add(num%42);
		}
		System.out.println(hs.size());
		
	}
}

 

hashset을 통해 중복 제거를 하는 방법은 생각했는데 막상 이전 문제처럼 배열에 넣는건 생각하지 못했다.

 

 

 

 

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int arr[] = new int[42];
		
		for(int i=0; i<10; i++) {
			arr[Integer.parseInt(br.readLine())%42]=1;
		}
		
		int cnt=0;
		for(int i=0; i<42; i++) {
			if(arr[i]==1) {
				cnt++;
			}
		}
		System.out.println(cnt);
	}
}

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int arr[] = new int[42];
		
		for(int i=0; i<10; i++) {
			arr[Integer.parseInt(br.readLine())%42]=1;
		}
		
		int cnt=0;
		for(int k : arr) {
			if(k==1) {
				cnt++;
			}
		}
		System.out.println(cnt);
	}
}

 

배열로 해결한 방법이다. 둘다 같은 풀이 방법이고 아랫부분은 확장 for문을 사용했다.