본문 바로가기
PS 문제 풀이/Baekjoon

[BOJ] 백준 1764 듣보잡

by 까망 하르방 2021. 2. 22.
반응형

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

 Input 

3 4

ohhenrie

charlie

baesangwook

obama

baesangwook

ohhenrie

clinton

 

 Output 

2

baesangwook

ohhenrie

원소의 중복 여부를 파악하기 위해 contain() 함수를 이용했지만 시간 제한을 만족 못함.

Map을 이용해 『key : value』 중복 여부 처리

 

 [해시] Hash란?

 

[해시] Hash란?

Hash란? 원소가 저장되는 위치가 원소 값에 의해 결정되는 자료구조 - 평균 상수 시간에 삽입, 검색, 삭제가 가능하다. - 매우 빠른 응답을 요구하는 상황에 유용 (Hash는 최소(최대) 원소를 찾는 것

zoosso.tistory.com


import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
 
public class Main {    
    public static void main(String[] args) {
        Scanner sc = new  Scanner(System.in);
        
        int N = Integer.parseInt(sc.next());
        int M = Integer.parseInt(sc.next());
        
        Map<String, String> unHeard = new HashMap<>();
        
        // 듣지 못한 사람을 입력받아 저장한다.
        while(N-- > 0) {
            String str = sc.next();
            unHeard.put(str, str);
        }
        
        // 듣도보도 못한 사람을 저장하기 위한 리스트
        List<String> answer = new ArrayList<>();
        
        while(M-- > 0) {
            String unSeen = sc.next();
            // 듣지도 못한 사람인지 확인한다.
            if(unHeard.get(unSeen) != null) {
                answer.add(unSeen);
            }
        }
        
        System.out.println(answer.size());
        
        // 사전순 정렬
        Collections.sort(answer);
        while(!answer.isEmpty()) {
            System.out.println(answer.remove(0));
        }
    }
}

 

반응형

'PS 문제 풀이 > Baekjoon' 카테고리의 다른 글

[BOJ] 백준 1065 한수  (0) 2021.02.22
[BOJ] 백준 17281 ⚾  (0) 2021.02.22
[BOJ] 백준 17070 파이프 옮기기 1  (0) 2021.02.22
[BOJ] 백준 17136 색종이 붙이기  (0) 2021.02.22
[BOJ] 백준 10814 나이순 정렬  (0) 2021.02.22

댓글