๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
TIL๐Ÿ”ฅ/์ฝ”๋”ฉํ…Œ์ŠคํŠธ

[ํ•ญํ•ด99ํด๋Ÿฝ] Java ๋น„๊ธฐ๋„ˆ_Day 20 CD

by hk713 2025. 4. 26.

์˜ค๋Š˜์˜ ๋ฌธ์ œ >> https://www.acmicpc.net/problem/4158

 

[ ์ƒ๊ฐ ํ๋ฆ„ ]

N, M ๊ฐœ์ˆ˜๋งŒํผ ์ž‘์„ฑ๋˜๋Š” ์ˆซ์ž๋ฅผ ๋ฐฐ์—ด์„ ๋งŒ๋“ค๊ณ 

๋‘ ๋ฐฐ์—ด์— ๊ณตํ†ต๋œ ์š”์†Œ์˜ ๊ฐœ์ˆ˜๋ฅผ ์„ธ๋ฉด ๋˜์ง€ ์•Š์„๊นŒ?

 

[ Java ] 

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));
        
        while (true) {
            StringTokenizer st = new StringTokenizer(br.readLine());
            int N = Integer.parseInt(st.nextToken());
            int M = Integer.parseInt(st.nextToken());
            
            if (N == 0 && M == 0) break;

            int[] A = new int[N];
            for (int i = 0; i < N; i++) {
                A[i] = Integer.parseInt(br.readLine());
            }

            int[] B = new int[M];
            for (int i = 0; i < M; i++) {
                B[i] = Integer.parseInt(br.readLine());
            }

            int i = 0, j = 0, cnt = 0;
            while (i < N && j < M) {
                if (A[i] == B[j]) {
                    cnt++;
                    i++;
                    j++;
                } else if (A[i] < B[j]) {
                    i++;
                } else {
                    j++;
                }
            }
            System.out.println(cnt);
        }
    }
}

์ž…๋ ฅ์„ ๋งŽ์ด ๋ฐ›์•„์•ผ ๋  ๋• Scanner๋ฅผ ์“ฐ๋ฉด ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ ค์„œ

BufferedReader๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค..!

๋Œ“๊ธ€