본문 바로가기

백준 문제풀기/JAVA

[백준 10815 JAVA 자바] 숫자 카드

주어진 M개의 수에 대해서,

각 수를 가지고 있으면 1을 아니면 0을,

공백으로 구분해 출력하시오

 

두번째 줄에 나오는 값을 잘 저장한 이후

4번째 줄의 숫자가 1개씩 나올 때 마다

저장된 목록에 있는지

확인해봅시다

 

코드입니다

 

import java.util.HashSet;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		HashSet<Integer> set1 = new HashSet<>();

		
		int n = scan.nextInt();
		
		for(int i=0;i<n;i++) {
			set1.add(scan.nextInt());
		}
		
		int m = scan.nextInt();
		int[] arr = new int[m];
		
		for(int i=0;i<m;i++) {
			arr[i]=scan.nextInt();
		}
		
		for(int i=0;i<m;i++) {
			if(set1.contains(arr[i])) {
				System.out.print(1+" ");
			}else {
				System.out.print(0+" ");
			}
		}
	}
}

저는 소유한 카드를 저장하기 위해

HashSet을 이용했습니다

집합과 같이 사용할 수 있기 때문에

set1.contains();를 이용해

가지고 있는지 아닌지를 bool값으로 리턴할 수 있습니다