본문 바로가기

백준 문제풀기/JAVA

[백준 1764 JAVA 자바] 듣보잡

 

'듣보잡의 수'와 그 명단을 '사전순'으로 출력한다

 

1. 두개의 HashSet을 만들어서 "듣보잡들을 저장할 집합"과 "듣보잡을 담을 집합"을 만듭시다

2. set.conatins(str)를 이용해 듣보잡인지 아닌지 판단합시다

3. "듣보잡을 담을 집합"을 '사전순'으로 출력합시다

 

코드입니다

 

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		HashSet<String> set = new HashSet<>();
		HashSet<String> ans = new HashSet<>();
		
		int n = scan.nextInt();
		int m = scan.nextInt();
		scan.nextLine();
		
		for(int i=0;i<n;i++) {
			set.add(scan.nextLine());
		}
		for(int i=0;i<m;i++) {
			String str = scan.nextLine();
			if(set.contains(str)) {
				ans.add(str);
			}
		}
		System.out.println(ans.size());
		ArrayList<String> reversedList = new ArrayList<>(ans);
		Collections.sort(reversedList);

		for (String element : reversedList) {
		    System.out.println(element);
		}
	}
}

 

Collections.sort(revesedList)는 

ArrayList를 오름차순으로 정리해주는 친구입니다

 

for (String element : reversedList) {

}

이건 처음 써보는건데 

reversedList 집합 안에 있는 원소들에게 for문을 돌리는 것입니다

 

저희는 오름차순으로 정리했기에

element가 오름차순으로 하나씩 대입되어

출력됩니다