BOJ - 1764 듣보잡

leehyunjon·2022년 6월 27일
0

Algorithm

목록 보기
84/162

Problem


Solve

듣도 못한 사람 리스트와 보도 못한 사람 리스트에 중복으로 존재하는 이름을 찾는 문제.

해시 Set을 사용하여 해결할 수 있다.

듣도 못한 사람을 중복없이 저장하기 위해 Set< String> set에 저장한다.
보도 못한 사람 중 set에 저장되어있는 이름이 있다면 듣도 보도 못한 사람이다.

듣도 보도 못한 사람을 찾았다면 사전순으로 출력하기 위해 오름차순 정렬.


Code

public class 듣보잡 {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

		StringTokenizer st = new StringTokenizer(br.readLine());
		int N = Integer.parseInt(st.nextToken());
		int M = Integer.parseInt(st.nextToken());

		Set<String> set = new LinkedHashSet<>();

		//듣도 못한 사람
		for(int i=0;i<N;i++){
			set.add(br.readLine());
		}

		List<String> list = new ArrayList<>();
        //보도 못한 사람
		for(int i=0;i<M;i++){
			String see = br.readLine();

			//듣도 못한 사람과 겹치는 이름이라면 듣도 보도 못한 이름.
			if(set.contains(see)) list.add(see);
		}

		//사전순 출력을 위한 오름차순 정렬
		Collections.sort(list);

		StringBuilder sb = new StringBuilder();
		sb.append(list.size());
		sb.append("\n");
		for(int i=0;i<list.size();i++){
			sb.append(list.get(i));
			sb.append("\n");
		}

		bw.write(sb.toString());
		bw.flush();
		bw.close();
	}
}

Result


Reference

profile
내 꿈은 좋은 개발자

0개의 댓글