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줄에 걸쳐 선언한 문자열들과 같은지 비교하는 문제
for문을 사용한 방법과 map을 사용한 방법으로 풀이
위가 map, 아래가 for문

for문
import java.util.*;
import java.io.*;
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());
String[] nArr = new String[N];
String[] mArr = new String[M];
for(int n=0; n<N; n++) nArr[n] = br.readLine();
for(int m=0; m<M; m++) mArr[m] = br.readLine();
int cnt = 0;
for(int n=0; n<N; n++) {
for(int m=0; m<M; m++) {
if(nArr[n].equals(mArr[m])) cnt++;
}
}
System.out.println(cnt);
}
}
Map
import java.util.*;
import java.io.*;
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());
// N맵
HashMap<String, Integer> nMap = new HashMap<String, Integer>();
for(int n=0; n<N; n++) nMap.put(br.readLine(), n);
int cnt = 0;
for(int m=0; m<M; m++) {
String word = br.readLine();
if(nMap.containsKey(word)) cnt++;
}
System.out.println(cnt);
}
}
'알고리즘 > 백준' 카테고리의 다른 글
[백준 / 2468 안전 영역 / JAVA / DFS] (0) | 2023.07.29 |
---|---|
[백준 / 14501 퇴사 / Java / DP] (0) | 2023.07.29 |
[백준 2503 / 숫자 야구 / JAVA / 구현] (0) | 2023.07.27 |
[백준 1388 / 바닥 장식 / JAVA] (0) | 2023.06.23 |
[백준 18870 / 좌표 압축 / JAVA] (0) | 2023.05.19 |
댓글