Programming/BaekJoon

백준 3052번 나머지

helloworld: 2021. 7. 16. 13:01

처음 풀이 - Map

public class 나머지 {
  
  public static void main(String[] args) throws IOException {

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

    int[] arr = new int[10];
    for(int i = 0; i < 10; i++) {
      arr[i] = Integer.parseInt(br.readLine());
    }

    Map<Integer, Integer> m = new HashMap<>();
    int result = 0;

    for(int n : arr) {
      m.put(n % 42,1);
    }

    for(Map.Entry<Integer, Integer> entry : m.entrySet()) {
      result += entry.getValue();
    }

    br.close();
    bw.write(result + "");
    bw.flush();
    bw.close();
  }
}

두번째 풀이 - Set

public class 나머지2 {

  public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

    Set<Integer> s = new HashSet<>();
    for(int i = 0; i < 10; i++) {
      s.add(Integer.parseInt(br.readLine())%42);
    }

    bw.write(s.size()+"");
    bw.flush();

    bw.close();
    br.close();
  }
}

세번째 풀이 - 배열

public class 나머지3 {

  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 result = 0;
    for(int n : arr) {
      if(n == 1) {
        result++;
      }
    }

    System.out.println(result);
  }
}