문제 정보
문제 이름 – 문자열 세트
어려움 – 실버 III
문제 번호 – 제14425호
문제 연결
https://www.acmicpc.net/problem/14425
14425호: 현 세트
문자열의 수 N과 M(1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)은 첫 번째 줄에 지정됩니다. 세트 S에 포함된 문자열은 다음 N 행에 지정됩니다. 확인할 문자열은 다음 M 행에 지정됩니다.
www.acmicpc.net
문제
총 N개의 문자열로 구성된 집합 S가 주어집니다.
입력으로 주어진 M 문자 중에서 집합 S의 총 문자 수를 찾는 프로그램을 작성하십시오.
기입
문자열의 수 N과 M(1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)은 첫 번째 줄에 지정됩니다.
세트 S에 포함된 문자열은 다음 N 행에 지정됩니다.
다음 M 행에는 확인할 문자열이 포함됩니다.
입력으로 주어지는 문자열은 알파벳 소문자로만 구성되며 500자 이하이다. 집합 S에서 같은 문자열이 두 번 이상 주어지는 경우는 없다.
누르다
첫 번째 줄에는 집합 S에 포함된 M 문자열의 수를 표시합니다.
예제 입력/출력
예제 입력 샘플 출력 5 11 baekjoononlinejudge startlink codeplus sundaycoding codingsh baekjoon codeplus codeminus startlink starlink sundaycoding codingsh codinghs sondaycoding startrink icerink4
알고리즘 분류
● 데이터 구조
● 문자열
● 해시를 사용한 세트 및 매핑
● 나무가 있는 세트 및 카드
소스 코드
package Lv2_Silver;
import java.io.*;
import java.util.*;
/**
* @author HanHoon
* @category 자료 구조, 문자열, 해시를 사용한 집합과 맵, 트리를 사용한 집합과 맵
* https://www.acmicpc.net/problem/14425
*/
public class BOJ_S3_14425_문자열_집합 {
public static void main(String() args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
StringBuilder str = new StringBuilder();
// N: 포함되어 있는 문자열 수
int N = Integer.parseInt(st.nextToken());
// M: 검사해야하는 문자열 수
int M = Integer.parseInt(st.nextToken());
// 중복 테스트를 위한 문자열 집합 S
HashMap<String, Character> S = new HashMap<>();
for (int n = 0; n < N; n++)
S.put(br.readLine(), ' ');
int result = 0;
for (int m = 0; m < M; m++)
// 값이 존재한다면 개수 증가
if(S.containsKey(br.readLine()))
result++;
str.append(result);
System.out.print(str);
br.close();
}
}
백준 목록
백준 목록
BOJ 런칭!! ● (BOJ) 백준 회원가입 시작 방법 ● (BOJ) Solved.AC 평가(Tier) 및 적용 ● (BOJ/JAVA) 백준 소스코드 제출 시 주의사항(Java) Bronze ● Bronze V – ● Bronze IV – ● Bronze III -..
한훈.tistory.com
준비된 자에게 기회는 찾아옵니다.
