https://www.acmicpc.net/problem/2776
2776번: 암기왕
연종이는 엄청난 기억력을 가지고 있다. 그래서 하루 동안 본 정수들을 모두 기억 할 수 있다. 하지만 이를 믿을 수 없는 동규는 그의 기억력을 시험해 보기로 한다. 동규는 연종을 따라 다니며,
www.acmicpc.net
해석 및 팁
이 문제를 풀 때 ArrayList나 배열을 사용하면 시간초과가 발생하므로 HashSet을 사용해주어야 합니다. 먼저 처음 주어진 수를 set에 저장한 후 그다음 주어지는 수가 존재하는지 확인하여 존재하면 StringBuilder에 1을 더하고 존재하지 않으면 0을 더하면 됩니다.
Java 코드
import java.util.Scanner;
import java.util.HashSet;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
StringBuilder sb = new StringBuilder();
int t = sc.nextInt();
for(int i = 0; i < t; i++) {
HashSet<Integer> set = new HashSet<>();
int n = sc.nextInt();
for(int j = 0; j < n; j++) {
set.add(sc.nextInt());
}
int m = sc.nextInt();
for(int j = 0; j < m; j++) {
int num = sc.nextInt();
if(set.contains(num)) sb.append(1+"\n");
else sb.append(0+"\n");
}
}
System.out.println(sb);
}
}
'백준' 카테고리의 다른 글
백준 9507 Generations of Tribbles(Java) (0) | 2023.01.30 |
---|---|
백준 2491 수열(Java) (1) | 2023.01.30 |
백준 1940 주몽(Java) (0) | 2023.01.30 |
백준 2847 게임을 만든 동준이(Java) (0) | 2023.01.29 |
백준 1015 수열 정렬(Java) (1) | 2023.01.29 |