엄지월드

백준 4158 CD 본문

알고리즘

백준 4158 CD

킨글 2024. 6. 25. 22:27

문제

설명

- 정답률이 낮아서 걱정했지만, 내가 생각하는 방식대로 접근해보았다. 

- Map에 값을 넣고, 값이 존재하면 result 값을 1씩 더하도록 처리하였다.

- 1번만 입력 받는게 아니라 0 0을 받을 때까지 계속 입력 받는 부분이라는 것을 놓쳐서 틀렸었다.

코드

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.HashMap;
import java.util.Map;
import java.util.StringTokenizer;

public class Main {

    // 4158 CD
    public static void main(String[] args) throws IOException {
        process();
    }
    
    private static void process() throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        // 배열에 값 넣기
        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;
            }

            Map<Long, Boolean> map = new HashMap<>();
            for (int i = 0; i < N; i++) {
                long num = Long.parseLong(br.readLine());
                map.putIfAbsent(num, true);
            }

            int result = 0;
            for (int i = 0; i < M; i++) {
                long num = Long.parseLong(br.readLine());
                boolean isOk = map.getOrDefault(num, false);
                if (isOk) {
                    result+=1;
                }
            }
            bw.write(result + "\n");
        }

        bw.flush();
        bw.close();
    }
}

 

'알고리즘' 카테고리의 다른 글

백준 9625 BABBA  (0) 2024.07.08
백준 11576 Base Conversion  (0) 2024.06.29
백준 15904 UCPC는 무엇의 약자일까?  (0) 2024.05.13
백준 4659 비밀번호 발음하기  (0) 2024.05.09
백준 5800 성적 통계  (0) 2024.05.08
Comments