본문 바로가기
[ 다먹살 ]/- Coding

[백준] 1764 듣보잡

by 엉망으로살기 2021. 10. 25.
반응형

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

 

1764번: 듣보잡

첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다.

www.acmicpc.net

 

문자열과 해시, 정렬을 사용해서 해결할 수 있는 간단한 문제였다. 난이도에 비해 생각보다 정답 비율이 낮은데 아마 맨 처음의 나처럼 사전순으로 정렬하지 않고 그냥 출력한 사람들이 많아서일 것 같다. 


문제 및 입출력

 

 


코드

import java.util.HashSet;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

public class Main
{
    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);
        HashSet<String> set = new HashSet<String>(); // 듣도 못한 사람 저장
        ArrayList<String> list = new ArrayList<String>(); // 듣도 + 보도 못한 사람 저장
        int n = sc.nextInt();
        int m = sc.nextInt();
        int cnt = 0;
        
        for(int i=0; i<n; i++)
        {
            set.add(sc.next()); // 듣도 못한 사람을 전부 저장 후
        }
        
        for(int i=0; i<m; i++)
        {
            String temp = sc.next(); // 입력 받는 값(보도 못한 사람)과 비교해서
            
            if(set.contains(temp)) // 듣도 + 보도 못한 사람일 경우 list에 저장하고, cnt+1
            {
                cnt++;
                list.add(temp);
            }
        }
        
        Collections.sort(list); // 듣도 보도 못한 사람의 이름을 정렬해서 출력
        
        System.out.println(cnt);
        
        for(String s : list)
        {
            System.out.println(s);
        }
        
        sc.close();
    }
}

 

반응형

댓글