728x90

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

 

14425번: 문자열 집합

첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다.  다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. 다음 M개의 줄에는 검사해야 하는 문자열들이 주어

www.acmicpc.net

문제

총 N개의 문자열로 이루어진 집합 S가 주어진다.

입력으로 주어지는 M개의 문자열 중에서 집합 S에 포함되어 있는 것이 총 몇 개인지 구하는 프로그램을 작성하시오.

 

풀이

S배열에 N개의 문자열을 넣고, checking함수를 이용하여 M개의 문자열 중에 S에 포함되어 있는 문자열의 개수를 구했다.

 

코드

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

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

        st = new StringTokenizer(br.readLine());
        N = Integer.parseInt(st.nextToken());
        int M = Integer.parseInt(st.nextToken());

        S = new String[N];
        for(int i = 0; i < N; i++) {
            S[i] = br.readLine();
        }
        int count = 0;
        for(int i = 0; i < M; i++) {
            if(checking(br.readLine())) count++;
        }
        System.out.println(count);
    }
    public static boolean checking(String str) {
        for(int i = 0; i < N; i++) {
            if(S[i].equals(str)) return true;
        }
        return false;
    }
}

틀린 부분이 있다면 정정해주시면 감사하겠습니다.
궁금한 부분이 있거나, 다른 아이디어가 있으시면 자유롭게 댓글 남겨주세요!

728x90

+ Recent posts