알고리즘 문제풀이/백준

#1822 : 차집합

모항 2022. 6. 13. 13:28

풀이방법

사용된 것:

TreeSet

 

2022.06.12

TreeSet을 사용한다.

 

  1. A의 모든 요소들을 TreeSet에 넣는다. add()를 사용한다.
  2. B의 모든 요소들에 대하여, TreeSet에 포함된 요소라면 TreeSet에서 해당 요소를 지운다. contains()와 remove()를 사용한다.
  3. 첫째 줄에 TreeSet의 크기를 출력한다. size()를 사용한다.
  4. 둘째 줄에 TreeSet의 모든 요소를 처음부터 출력한다. for(int i: (트리셋 이름)) 을 사용해도 되고, while(!(트리셋 이름).isEmpty()) 반복문 안에서 pollFirst()로 출력해도 된다.

 

 

코드

Java(2022.06.13)

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

public class Main {

	public static void main(String[] args) throws IOException{
		// TODO Auto-generated method stub
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		StringTokenizer st = new StringTokenizer(br.readLine());
		
		int a = Integer.parseInt(st.nextToken());
		int b = Integer.parseInt(st.nextToken());
		
		TreeSet<Integer> ts = new TreeSet<Integer>();
		
		//집합 A의 원소들을 넣기
		st = new StringTokenizer(br.readLine());
		for(int i=0; i<a; i++) ts.add(Integer.parseInt(st.nextToken()));
		
		//겹치는 수 삭제
		st = new StringTokenizer(br.readLine());
		for(int i=0; i<b; i++) {
			int t = Integer.parseInt(st.nextToken());
			if(ts.contains(t)) ts.remove(t);
			}
		
		//정답 출력
		System.out.println(ts.size());
		while(!ts.isEmpty()) System.out.print(ts.pollFirst() + " ");
	}

}

'알고리즘 문제풀이 > 백준' 카테고리의 다른 글

#2805 : 나무 자르기  (0) 2022.06.15
#1654 : 랜선 자르기  (0) 2022.06.14
#1246 : 온라인 판매  (0) 2022.06.12
#10825 : 국영수  (0) 2022.06.12
#2217 : 로프  (0) 2022.06.12