sm 기술 블로그

94. 1764(듣보잡) 본문

문제/백준_자바

94. 1764(듣보잡)

sm_hope 2022. 6. 20. 20:58
import java.io.*;
import java.util.*;

class Main {
	public static void main(String args[])throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		Map<String, Integer> cardMap = new HashMap<>();
		ArrayList<String> names = new ArrayList<>();
		
		String[] NM = br.readLine().split(" ");
		int N = Integer.parseInt(NM[0]);
		int M = Integer.parseInt(NM[0]);
		int cnt = 0;
		
		for(int i=0; i<N; i++) {
			cardMap.put(br.readLine(),1);
		}
		
		for(int j=0; j<=M; j++) {
			String name = br.readLine();
			if(cardMap.get(name) != null) {
				cnt++;
				names.add(name);
			}
		}
		Collections.sort(names);
		sb.append(String.join("\n", names));
		
		System.out.println(cnt);
		System.out.println(sb);
		
		
	}
}

문제 요약

진영씨가 듣지도 보지도 못한 사람을 출력해라.

해설

기존 맵 정리하는것에서 추가로 사전순으로 정렬을 해야 하는 문제이다.

먼저

위에는 듣보잡 목록이고 아래는 입력값으로 생각하면 된다.

 

위 코드는 전에 했던거와 크게 다를게 없다. 

그외 추가한 것은

Collections.sort(names);
sb.append(String.join("\n", names));

인데, Arrays.sort()는 기본 배열을 정리하고 ArrayList를 정렬하기 위해서는 Collections.sort()를 사용해야한다.

또한 join사용방법이 다른 것들과 조금 다르다.

구조가 String.join("추가할 문자", 배열) 라는것을 명심해두자.  

'문제 > 백준_자바' 카테고리의 다른 글

96. 11478(서로 다른 문자열의 개수)  (0) 2022.06.21
95. 1269(대칭 차집합)  (0) 2022.06.21
93. 10816(숫자 카드2)  (0) 2022.06.20
92. 1620(나는야 포켓몬 마스터 이다솜)  (0) 2022.06.19
91. 14425 (문자열 집합)  (0) 2022.06.19
Comments