주어진 숫자 카드 중에 특정 숫자가 적혀 있는지 확인하는 프로그램을 작성해야 합니다. 각 숫자 카드에는 하나의 정수가 적혀 있으며, 상근이는 N개의 숫자 카드를 가지고 있습니다. 이후 M개의 정수가 주어지고, 각 정수가 상근이가 가지고 있는 숫자 카드 중에 존재하는지 확인해야 합니다.
첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N이 주어집니다. (1 ≤ N ≤ 500,000)
둘째 줄에는 상근이가 가지고 있는 숫자 카드에 적혀 있는 정수 N개가 주어집니다. 각 정수는 공백으로 구분되어 있습니다. (-10,000,000 ≤ 정수 ≤ 10,000,000)
셋째 줄에는 확인해야 할 숫자의 개수 M이 주어집니다. (1 ≤ M ≤ 500,000)
넷째 줄에는 확인해야 할 M개의 정수가 주어지며, 각 정수는 공백으로 구분되어 있습니다. (-10,000,000 ≤ 정수 ≤ 10,000,000)
입력으로 주어진 M개의 수에 대해, 각 숫자가 적힌 숫자 카드를 상근이가 가지고 있으면 1을, 아니면 0을 공백으로 구분하여 출력합니다.
5
6 3 2 10 -10
8
10 9 -5 2 3 4 5 -10
1 0 0 1 1 0 0 1
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int N = scanner.nextInt(); // 숫자 카드의 개수 입력
Set<Integer> cards = new HashSet<>();
// 상근이가 가지고 있는 숫자 카드를 집합에 저장
for (int i = 0; i < N; i++) {
cards.add(scanner.nextInt());
}
int M = scanner.nextInt(); // 확인해야 할 숫자의 개수 입력
StringBuilder result = new StringBuilder();
// 숫자 카드 확인
for (int i = 0; i < M; i++) {
int num = scanner.nextInt();
result.append(cards.contains(num) ? "1 " : "0 ");
}
System.out.println(result.toString().trim());
}
}
먼저, 상근이가 가지고 있는 숫자 카드를 입력받아 HashSet에 저장합니다. 이를 통해 중복된 숫자는 제거됩니다.
확인해야 할 숫자의 개수와 각 숫자들을 입력받습니다.
각 숫자가 HashSet에 존재하는지 확인하여 있으면 1을, 없으면 0을 결과 문자열에 추가합니다.
마지막으로 결과 문자열을 출력합니다.