Algorithm/BOJ
[Bronze II/JAVA] 3052 나머지
carsumin
2024. 10. 23. 16:33
https://www.acmicpc.net/problem/3052
- 배열과 HashSet으로 풀이할 수 있음
- 배열로 입력받아서 이중for문을 돌려서 값이 같은 경우 cnt를 증가시키고, cnt가 0이면 값이 다르다고 볼 수 있기 때문에 diff를 카운트해서 서로 다른 나머지를 체크했다
- 문제는 입력값이 10개뿐이였지만 입력개수가 많아지는 경우 효율성이 떨어지기 때문에 다른 풀이 방법을 찾아봐야겠다
내 풀이
import java.util.*;
class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int[] arr = new int[10];
int diff = 0;
for(int i=0; i<10; i++){
arr[i] = sc.nextInt() % 42;
}
for(int i=0; i<10; i++){
int cnt = 0;
for(int j=i+1; j<10; j++){
if(arr[i]==arr[j]) cnt++; //값이 같으면 cnt증가
}
if(cnt==0) diff++; //값이 다른 경우 diff증가
}
sc.close();
System.out.println(diff);
}
}