ArrayList의 contains는 타임아웃 발생
*ArrayList의 contians는 시간복잡도: O(n)
대신 HashSet을 사용하였다.
*HashSet의 contains는 시간복잡도: O(1)
시간을 단축시키기 위해 StringBuilder를 이용하여 출력하였다.
import java.util.*;
public class Main {
public static void main(String[] args) {
int N, M;
Scanner sc = new Scanner(System.in);
N = sc.nextInt();
HashSet<Integer> arr = new HashSet<>();
StringBuilder sb = new StringBuilder();
for(int i=0; i<N; i++)
arr.add(sc.nextInt());
M = sc.nextInt();
for(int i=0; i<M; i++) {
int n = sc.nextInt();
if(arr.contains(n))
sb.append("1 ");
else
sb.append("0 ");
}
System.out.println(sb);
sc.close();
}
}
'프로그래밍 > 백준 문제풀이' 카테고리의 다른 글
백준 1920: 수 찾기 / 이진 탐색(binary search) (0) | 2022.08.09 |
---|---|
백준 1929: 소수 구하기(JAVA) / 에라토스테네스의 체 (0) | 2022.08.09 |
백준 10816: 숫자 카드 2(JAVA) (0) | 2022.07.19 |
백준 1181: 단어 정렬 (0) | 2022.07.17 |
백준 10989번: 수 정렬하기 3(JAVA) / 계수 정렬(counting sort) (0) | 2022.07.16 |