백준 14425(문자열 집합)

김경욱·2025년 8월 13일

백준

목록 보기
40/121

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Scanner;
import java.util.StringTokenizer;

public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

   String firstline = br.readLine();

  StringTokenizer st = new StringTokenizer(firstline);
  int[] number = new int[2];

  int x =0;

while(st.hasMoreTokens())
{
number[x++] = Integer.parseInt(st.nextToken());
} //number[0] = 주어진 줄 number[1]은 몇개의 줄을 넣을지

    String[] text1 = new String[number[0]];

    for (int i =0; i < number[0]; i++)
    {
        text1[i] = br.readLine();
    }

    String[] text2 = new String[number[1]];

    for (int i=0; i < number[1]; i++)
    {
        text2[i] = br.readLine();
    }

int count=0;

    for (int i=0; i< number[0]; i++)
    {
        for (int j =0; j < number[1]; j++)
        {
            if (text2[j].equals(text1[i]))
            {
                count++;
            }
        }
    }

    System.out.println(count);











}

} 지금 이 방식으로 제출하였는데 시간초과가 안 뜨고 풀려서 놀랐다. 그래서 지피티한테 새로운 코드로 알려달라고 해서 Set set = new HashSet<>();을 배웠다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;

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());

   Set<String> set = new HashSet<>();

   for (int i = 0 ; i < N; i++)
   {
       set.add(br.readLine());
   }
   
   int count=0;

   for (int j =0; j < M; j++)
   {
       if (set.contains(br.readLine()))
       {
           count++;
       }
   }

    System.out.println(count);










}

} 이제 슬슬 Set,HashSet을 사용하는 문제가 나오는 것 같다!
PS. 지난 며칠간은 군대에 있어서 문제를 못 풀었고 드디어 오늘 전역한지 이틀차이다. 다시 매일매일 백준 1문제씩 풀어야겠다!!

0개의 댓글