본문 바로가기

백준/Hash & Tree

백준 14425 자바

반응형

 

문자열과 정렬 관련 문제입니다.

 

1.String 배열을 이용한 풀이

 

배열을 두 개를 이용해서 반복문을 이용해 똑같은 단어가 있는지 확인합니다.

import java.io.*;
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());

        String[] s_set = new String[n];

        String[] checker = new String[m];

        for (int i = 0; i < n; i++) {
            s_set[i] = br.readLine();
        }
        for (int i = 0; i < m; i++) {
            checker[i] = br.readLine();
        }
        int cnt = 0;
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                if(s_set[i].equals(checker[j])) {
                    cnt++;
                }
            }
        }
        System.out.println(cnt);
    }
}

 

2. Hashmap을 이용한 풀이

Hashmap에 문자열을 넣고 hashMap.containskey를 이용해서 입력 받는 문자열을 키로 가지고 있는지 확인하고 있다면 cnt를 1 증가시키는 방법입니다.

 

import java.io.*;
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());

        HashMap<String,Integer> hashMap = new HashMap<>();

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

        int cnt = 0;

        for (int i = 0; i < M; i++) {
            String check = br.readLine();
            if(hashMap.containsKey(check)) {
                cnt++;
            }
        }
        System.out.println(cnt);
    }
}

 

 

위에 것이 Hashmap 풀이

아래 것이 문자열 배열 풀이

 

보시다시피 Hashmap을 이용한 풀이가 훨씬 빠릅니다!

반응형

'백준 > Hash & Tree' 카테고리의 다른 글

백준 20291 자바  (0) 2022.08.24
백준 10867 자바  (0) 2022.08.23
백준 25192 자바  (0) 2022.08.23
백준 1620 자바  (0) 2022.08.20
백준 1764 자바  (0) 2022.08.19