sm 기술 블로그
94. 1764(듣보잡) 본문
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