[Algorithm] ๐Ÿ‘‘๋ฐฑ์ค€ 2776 ์•”๊ธฐ์™•

HaJingJingยท2021๋…„ 6์›” 4์ผ
0

Algorithm

๋ชฉ๋ก ๋ณด๊ธฐ
59/119

0. ๋ฌธ์ œ

์—ฐ์ข…์ด๋Š” ์—„์ฒญ๋‚œ ๊ธฐ์–ต๋ ฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ํ•˜๋ฃจ ๋™์•ˆ ๋ณธ ์ •์ˆ˜๋“ค์„ ๋ชจ๋‘ ๊ธฐ์–ต ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋ฅผ ๋ฏฟ์„ ์ˆ˜ ์—†๋Š” ๋™๊ทœ๋Š” ๊ทธ์˜ ๊ธฐ์–ต๋ ฅ์„ ์‹œํ—˜ํ•ด ๋ณด๊ธฐ๋กœ ํ•œ๋‹ค. ๋™๊ทœ๋Š” ์—ฐ์ข…์„ ๋”ฐ๋ผ ๋‹ค๋‹ˆ๋ฉฐ, ์—ฐ์ข…์ด ํ•˜๋ฃจ ๋™์•ˆ ๋ณธ ์ •์ˆ˜๋“ค์„ ๋ชจ๋‘ โ€˜์ˆ˜์ฒฉ1โ€™์— ์ ์–ด ๋†“์•˜๋‹ค. ๊ทธ๊ฒƒ์„ ๋ฐ”ํƒ•์œผ๋กœ ๊ทธ๊ฐ€ ์ง„์งœ ์•”๊ธฐ์™•์ธ์ง€ ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•ด, ๋™๊ทœ๋Š” ์—ฐ์ข…์—๊ฒŒ M๊ฐœ์˜ ์งˆ๋ฌธ์„ ๋˜์กŒ๋‹ค. ์งˆ๋ฌธ์˜ ๋‚ด์šฉ์€ โ€œX๋ผ๋Š” ์ •์ˆ˜๋ฅผ ์˜ค๋Š˜ ๋ณธ ์ ์ด ์žˆ๋Š”๊ฐ€?โ€ ์ด๋‹ค. ์—ฐ์ข…์€ ๋ง‰ํž˜์—†์ด ๋ชจ๋‘ ๋Œ€๋‹ต์„ ํ–ˆ๊ณ , ๋™๊ทœ๋Š” ์—ฐ์ข…์ด ๋ดค๋‹ค๊ณ  ์ฃผ์žฅํ•˜๋Š” ์ˆ˜ ๋“ค์„ โ€˜์ˆ˜์ฒฉ2โ€™์— ์ ์–ด ๋‘์—ˆ๋‹ค. ์ง‘์— ๋Œ์•„์˜จ ๋™๊ทœ๋Š” ๋‹ต์ด ๋งž๋Š”์ง€ ํ™•์ธํ•˜๋ ค ํ•˜์ง€๋งŒ, ์—ฐ์ข…์„ ๋”ฐ๋ผ๋‹ค๋‹ˆ๋Š๋ผ ๋„ˆ๋ฌด ํž˜๋“ค์–ด์„œ ์—ฌ๋Ÿฌ๋ถ„์—๊ฒŒ ๋„์›€์„ ์š”์ฒญํ–ˆ๋‹ค. ๋™๊ทœ๋ฅผ ๋„์™€์ฃผ๊ธฐ ์œ„ํ•ด โ€˜์ˆ˜์ฒฉ2โ€™์— ์ ํ˜€์žˆ๋Š” ์ˆœ์„œ๋Œ€๋กœ, ๊ฐ๊ฐ์˜ ์ˆ˜์— ๋Œ€ํ•˜์—ฌ, โ€˜์ˆ˜์ฒฉ1โ€™์— ์žˆ์œผ๋ฉด 1์„, ์—†์œผ๋ฉด 0์„ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด๋ณด์ž.

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ํ…Œ์ŠคํŠธ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜ T๊ฐ€ ๋“ค์–ด์˜จ๋‹ค. ๋‹ค์Œ ์ค„์—๋Š” โ€˜์ˆ˜์ฒฉ 1โ€™์— ์ ์–ด ๋†“์€ ์ •์ˆ˜์˜ ๊ฐœ์ˆ˜ N(1 โ‰ค N โ‰ค 1,000,000)์ด ์ž…๋ ฅ์œผ๋กœ ๋“ค์–ด์˜จ๋‹ค. ๊ทธ ๋‹ค์Œ ์ค„์— โ€˜์ˆ˜์ฒฉ 1โ€™์— ์ ํ˜€ ์žˆ๋Š” ์ •์ˆ˜๋“ค์ด N๊ฐœ ๋“ค์–ด์˜จ๋‹ค. ๊ทธ ๋‹ค์Œ ์ค„์—๋Š” โ€˜์ˆ˜์ฒฉ 2โ€™์— ์ ์–ด ๋†“์€ ์ •์ˆ˜์˜ ๊ฐœ์ˆ˜ M(1 โ‰ค M โ‰ค 1,000,000) ์ด ์ฃผ์–ด์ง€๊ณ , ๋‹ค์Œ ์ค„์— โ€˜์ˆ˜์ฒฉ 2โ€™์— ์ ์–ด ๋†“์€ ์ •์ˆ˜๋“ค์ด ์ž…๋ ฅ์œผ๋กœ M๊ฐœ ๋“ค์–ด์˜จ๋‹ค. ๋ชจ๋“  ์ •์ˆ˜๋“ค์˜ ๋ฒ”์œ„๋Š” int ๋กœ ํ•œ๋‹ค.

์ถœ๋ ฅ

โ€˜์ˆ˜์ฒฉ2โ€™์— ์ ํ˜€์žˆ๋Š” M๊ฐœ์˜ ์ˆซ์ž ์ˆœ์„œ๋Œ€๋กœ, โ€˜์ˆ˜์ฒฉ1โ€™์— ์žˆ์œผ๋ฉด 1์„, ์—†์œผ๋ฉด 0์„ ์ถœ๋ ฅํ•œ๋‹ค.

1. ์•„์ด๋””์–ด

๐Ÿ’ก ์ˆซ์ž๋ฅผ key๊ฐ’์œผ๋กœ ์ด์šฉ
๐Ÿ’ก ์ฒ˜์Œ ๋‚˜์˜จ ์ˆซ์ž๋Š” value์— true ์ €์žฅ
๐Ÿ’ก key ๊ฐ’์ด ์žˆ์œผ๋ฉด 1 ์ถœ๋ ฅ, ์•„๋‹ˆ๋ฉด 0 ์ถœ๋ ฅ

2. ํ•ต์‹ฌ ํ’€์ด

1) ์ฒ˜์Œ ๋‚˜์˜จ ์ˆซ์ž๋Š” value์— true ์ €์žฅ

memo.put(num, true);

2) key ๊ฐ’์ด ์žˆ์œผ๋ฉด true ์ถœ๋ ฅ, ์•„๋‹ˆ๋ฉด false ์ถœ๋ ฅ

if(memo.containsKey(num))
	bw.write("1\n");
else
	bw.write("0\n");

3. ์ฝ”๋“œ

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
public class Hash_4 {

	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		int tc = Integer.parseInt(br.readLine());
		
		while(tc-->0){
			HashMap<Integer,Boolean> memo = new HashMap<>();
			
			int n = Integer.parseInt(br.readLine());
			String[] s = br.readLine().split(" ");
			
			for(int i=0; i<n; i++) {
				int num = Integer.parseInt(s[i]);
				memo.put(num, true);
			}
			
			int m = Integer.parseInt(br.readLine());
			s = br.readLine().split(" ");
						
			for(int i=0; i<m; i++) {
				int num = Integer.parseInt(s[i]);
				if(memo.containsKey(num))
					bw.write("1\n");
				else
					bw.write("0\n");
			}
		}
		
		bw.flush();
		bw.close();
		br.close();
	}
	

}

4. ๊ฒฐ๊ณผ

์„ฑ๊ณตโœจ
StringBuilder๋กœ ํ–ˆ๋”๋‹ˆ ์ถœ๋ ฅํ˜•์‹์ด ์ด์ƒํ•˜๋‹ค๊ณ  ๋œฌ๋‹ค..
๊ทธ๋ž˜์„œ, BufferedWriter์„ ์‚ฌ์šฉํ–ˆ๋‹ค.

profile
๐ŸŒฑ์ดˆ๋ณด ๊ฐœ๋ฐœ์ž๐ŸŒฑ

0๊ฐœ์˜ ๋Œ“๊ธ€