[Java] 백준(Baekjoon) 10815. 숫자카드

2024. 1. 26. 16:13Algorithm/자료구조

 

https://www.acmicpc.net/problem/10815

 

10815번: 숫자 카드

첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,

www.acmicpc.net

 

 

 


 

풀이

 

package dataStructure;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.StringTokenizer;

public class Ex10815 {

	public static void main(String[] args) throws NumberFormatException, IOException {
		// TODO Auto-generated method stub
		BufferedReader br= new BufferedReader(new InputStreamReader(System.in));
		
		HashSet<Integer> nSet= new HashSet<Integer>();
		
		int n= Integer.parseInt(br.readLine());
		
		String s= br.readLine();
		StringTokenizer st= new StringTokenizer(s);
		for(int i=0;i<n;i++) {
			nSet.add(Integer.parseInt(st.nextToken()));
		}
		
		int m= Integer.parseInt(br.readLine());
		
		s= br.readLine();
		st= new StringTokenizer(s);
		
		StringBuilder sb= new StringBuilder();
		
		for(int i=0;i<m;i++) {
			if(nSet.contains(Integer.parseInt(st.nextToken()))) {
				sb.append("1 ");
			}else {
				sb.append("0 ");
			}
		}
		
		System.out.println(sb.toString().trim());
	}

}

같은 숫자를 중복해서 넣지 않고, 어떤 수를 가지고 있는지 판단해야한다.

=> Set 사용

 

contains 메소드: 어떤수를 가지고 있는지 아닌지 반환(true/false)