JuSeok

1920번

문제

  • 첫째 줄에 N, 다음 줄에 N개의 정수가 오고 셋째 줄에 M, 다음 줄에 M개의 정수가 옴
  • M개의 수들 중 N안에 존재하면 1, 아니면 0 출력

문제 해결 순서

  1. N개의 숫자를 Hashset인 hs에 저장
  2. 크기 M인 배열을 생성하고 M개의 숫자를 저장
  3. hs.contains(arr[i])로 배열에 숫자가 존재하는지 확인
  4. Hashset.contains() 함수는 시간복잡도가 o(1)이라 시간초과가 안뜸
import java.util.Scanner;
import java.util.HashSet;
class Main {
  public static void main(String[] args) {
    int N;
    int M;
    int answer;
    Scanner sc = new Scanner(System.in); 
    N = sc.nextInt();
    HashSet<Integer> hs = new HashSet<Integer>(); 

    for(int i=0; i<N; i++) {
      hs.add(sc.nextInt());
    }

    M = sc.nextInt();
    int arr[] = new int[M];
    
    for(int i=0; i<M; i++) {
      arr[i] = sc.nextInt();
    }

    for(int i=0; i<M; i++) {
      if (hs.contains(arr[i])) {
        answer = 1; 
      }
      else {
        answer = 0;
      }
      System.out.println(answer);
    }
  }
}

Tags