-
1764번 - 듣보잡알고리즘/백준 2023. 6. 10. 15:09
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.HashMap; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { 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()); HashMap<String, Boolean> map = new HashMap<>(); for(int i=0;i<N;i++) { map.put(br.readLine(), true); } String name; ArrayList<String> names = new ArrayList<>(); for(int i=0;i<M;i++) { name = br.readLine(); if(map.containsKey(name)) { names.add(name); } } names.sort(null); StringBuilder sb = new StringBuilder(); sb.append(names.size()+"\n"); for(int i=0;i<names.size();i++) { sb.append(names.get(i)+"\n"); } System.out.print(sb); br.close(); } }
두 개의 문자열 리스트가 주어질 때 양쪽에서 중복되는 문자열들을 찾아 사전 순으로 정렬하는 문제입니다.
중복의 경우 map을 이용하여 containsKey 메서드를 통해 간단하게 식별이 가능합니다.
정렬의 경우에는 ArrayList를 이용하여 null을 인자로 주고 sort 메서드를 실행하면 원하는 대로 오름차순으로 정렬됩니다.
'알고리즘 > 백준' 카테고리의 다른 글
1931번 - 회의실 배정 (0) 2023.06.15 1927번 - 최소 힙 (0) 2023.06.15 1620번 - 나는야 포켓몬 마스터 이다솜 (0) 2023.06.10 1389번 - 케빈 베이컨의 6단계 법칙 (0) 2023.06.09 1107번 - 리모콘 (0) 2023.06.08