문자열 집합

곽지욱·2024년 2월 15일

BOJ

목록 보기
44/69

14425번 : 문자열 집합

문제 풀이

  • 이 문제는 n개의 문자열이 주어지고 그 다음에 m 개의 문자열을 입력한다 그 중에서 몇개의 문자열이 n개의 문자열과 겹치는 지 그 수를 출력해주는 것임

  • HashMap 을 이용해서 품.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.Buffer;
import java.util.HashMap;
import java.util.Map;
import java.util.StringTokenizer;

public class String_arr {
    public static void main(String[] args) throws IOException {

        //N 개의 문자열이 주어지고 이후에 주어지는 m 개의 문자열 중에 몇 개가 n과 겹치는지 출력

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

        Map<String,Integer> map = new HashMap<>();

        for(int i = 0; i<N; i++){
            map.put(br.readLine(), 0);
        }

        int count = 0;

        for (int i = 0; i<M; i++){
            if (map.containsKey(br.readLine())) count++;
        }

        System.out.println(count);


    }
}
  1. <String,Integer> 형태인 HashMap 을 생성 key 는 문자열을 넣을 거고 초기 값 0으로 초기화(상관없음)

  2. N 개의 문자열들을 전부 Map 에 추가한 후 M 개의 문자열들을 입력 받을 때 containsKey 함수를 이용해서 맵에 그 문자열이 있으면 카운트를 1씩 증가시킴

  • containsKey 메서드는 Map 인터페이스에 정의된 메서드 중 하나인데 , 주어진 키가 맵 안에 있는지 여부를 확인하는 역할을 함

  • 맵이 지정된 키를 포함하면 'true'를 반환하고, 그렇지 않으면 'false'를 반환함

  • if (map.containsKey(br.readLine())) count++; 해당 코드에서는 'map' 이라는 HashMap 에서 키 값으로 읽은 문자열이 존재하는지 여부를 확인해서 있으면 count 를 증가시키는 방법임.

0개의 댓글