[백준] 14425

ninano05·2026년 3월 11일

최근 재풀이

import java.util.*;
import java.io.*;

public class Main {

    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();

        StringTokenizer st = new StringTokenizer(br.readLine(), " ");
        int N = Integer.parseInt(st.nextToken());
        int M = Integer.parseInt(st.nextToken());
        HashSet<String> set = new HashSet<>();
        // 집합 s 입력
        for(int i=0; i<N; i++) {
            set.add(br.readLine());
        }
        int count = 0;
        // M개의 문자열 집합 s 포함 검사
        for(int i=0; i<M; i++) {
            String s = br.readLine();
            if(set.contains(s)) count++;
        }
        sb.append(count);
        System.out.println(sb);
        br.close();
    }
}

이전 풀이

import java.util.*;
import java.io.*;

public class Main {
    public static void main(String args[]) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        
        int answer = 0;
        
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");
        int n  = Integer.parseInt(st.nextToken());
        int m = Integer.parseInt(st.nextToken());
        
        // s 해시 셋으로 입력 받기
        HashSet<String> set = new HashSet<>();
        for(int i=0; i<n; i++) {
            set.add(br.readLine());
        }
        
        //M개의 문자열 입력
            //해시셋에서 contains으로 검사, 있으면 answer+1
        for(int i=0; i<m; i++) {
            String mstr = br.readLine();
            if(set.contains(mstr)){
                    answer ++;
            }
        }

        bw.write(answer+"\n");
        bw.flush();
        bw.close();
        br.close();
    }
}
  • HashSet을 사용한 간단한 중복 검사
profile
초보 개발자

0개의 댓글