elesis's haunt
3052 나머지 본문
* BufferedReader, 배열, 메소드 정의
import java.io.*;
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
for(int i=0; i<10; i++) {
nums[i] = Integer.parseInt(br.readLine())%42;
}
Arrays.sort(nums);
System.out.println( removeDup(nums) );
}
public static int removeDup(int[] arr) {
return removeDup(arr, arr.length);
}
public static int removeDup(int[] arr, int n) {
// 0개나 1개면 중복제거를 할 필요가없으니 그대로 갯수 반환
if (n==0 || n==1){
return n;
}
// 임시배열 생성
int[] tempA = new int[n];
// 배열진행용 변수
int j = 0;
// round는 배열크기 -1만큼 진행됨
for (int i=0; i<n-1; i++) {
// 값이 서로 다르면 임시배열에 저장
if (arr[i] != arr[i+1]) {
tempA[j++] = arr[i];
}
}
// for문에서 배열안터지게 하려다가 비교못한 마지막 arr[n-1]을 담아줌
tempA[j++] = arr[n-1];
// temp의 배열크기만큼의 값을 arr에 다시 담음
for (int i=0; i<j; i++) {
arr[i] = tempA[i];
}
// dup 아닌 것의 갯수를 반환
return j;
}
}
* HashSet
mport java.util.HashSet;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
HashSet<Integer> h = new HashSet<Integer>();
for (int i = 0; i < 10; i++) {
h.add(Integer.parseInt(br.readLine()) % 42);
}
System.out.print(h.size());
}
}
* 배열,
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
boolean[] arr = new boolean[42];
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
for(int i = 0 ; i < 10 ; i++) {
arr[Integer.parseInt(br.readLine()) % 42] = true;
}
int count = 0;
for(boolean value : arr) {
if(value){ // value 가 true 라면
count++;
}
}
System.out.println(count);
}
}
HashSet
- 중복되는 원소를 넣을 경우 하나만 저장한다. 즉, 중복원소를 허용하지 않는다.
- HashSet 은 순서 개념이 없다. 따라서 Collections.sort() 메소드를 사용할 수 없다. 만약 정렬을 하고 싶다면 리스트로 변환 후 정렬해야한다.
저번에 코테할때는 Set 잘 써놓고 막상 요번엔 쓰지도못했다. 쓸수있는건 잘 쓰도록하자...ㅠㅠ!
'백준~문풀 후 최적화 추가~ > 단계별로 풀어보기' 카테고리의 다른 글
8958 OX퀴즈 (0) | 2021.09.27 |
---|---|
1546 평균 (0) | 2021.09.24 |
2577 숫자의 개수 (0) | 2021.09.23 |
2562 최댓값 (0) | 2021.09.23 |
10818 최소, 최대 (0) | 2021.09.16 |
Comments