반응형

 

[광고 누르면 오늘의 행운 상승!!]

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

 

1764번: 듣보잡

첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. 이름은 띄어쓰기 없이 영어 소문자로만 이루어지며, 그 길이는 20 이하이다. N, M은 500,000 이하의 자연수이다.

www.acmicpc.net

전체를 정렬한 후 

i번쨰와 i+1번째를 비교하여 같은 것이 있으면 듣보잡이다.

리스트에 담고 출력하였다.

import java.io.*;
import java.util.*;

public class 듣보잡 {

	public static void main(String[] args) throws Exception{
		System.setIn(new FileInputStream("test.txt"));
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine());
		int N = Integer.parseInt(st.nextToken());
		int M = Integer.parseInt(st.nextToken());
		ArrayList<String> list = new ArrayList<>();
		String[] noHear = new String[N+M];
		
		for (int i = 0; i < N; i++) {
			noHear[i] = br.readLine();
		}
		
		for (int i = N; i < M+N; i++) {
			noHear[i] = br.readLine();
		}
		Arrays.sort(noHear);
		for (int i = 0; i < M+N-1; i++) {
			if(noHear[i].equals(noHear[i+1])) {
				list.add(noHear[i]);
			}
		}
		System.out.println(list.size());
		for(String s : list) System.out.println(s);
	}

}
반응형

+ Recent posts