BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int[] arr = new int[10];
for (int i = 0; i < 10; i++) {
int a = Integer.parseInt(br.readLine());
arr[i] = a % 42;
}
int count = (int) Arrays.stream(arr).distinct().count();
System.out.println(count);
아~ 코드 깔끔하다~ 흐흐!!
라고 생각하는 순간
습.... 시간이 너무 많이 걸렸는뎅...?
사실 위의 코드도 자바의 정석
공부하면서 배웠던 stream
을 써먹을라고 머리를 좀 굴렸었다... ㅠㅠ 배운거 안보고 쓸려니까 어떻게 작성해야 하는지 몰랐던 나..
arr.stream()
치고 있으니까 안되지 임마....
여튼! 중복 제거하고 카운트 해서 호로록~ 할려고 했으나 시간이 오래 걸려서
띠용???? 다른 더 좋은 방법이 있나? 했더니
분명히 공부했었는데 중복을 허용하지 않고, 순서가 보장되지 않음
만 기억하고 그냥 스쳐지나갔었다.... Set!
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
HashSet<Integer> hs = new HashSet<Integer>();
for (int i = 0; i < 10; i++) {
hs.add(Integer.valueOf(br.readLine()) % 42);
}
System.out.println(hs.size());
무친...!!! 뭐야 이 깔끔한 코드는...!!
.add()
로 바로 넣어주고
.size()
는 원소의 개수를 반환한다고 한다....
자료구조에 대해서도 많이 공부해야겠다. 배열 문제라고 배열만 사용할 필요는 없다는 것