백준 암기왕

KIMYEONGJUN·2025년 2월 10일
0
post-thumbnail

문제

내가 생각했을때 문제에서 원하는부분

첫째 줄에 테스트케이스의 개수 T가 들어온다.
다음 줄에는 ‘수첩 1’에 적어 놓은 정수의 개수 N(1 ≤ N ≤ 1,000,000)이 입력으로 들어온다.
그 다음 줄에  ‘수첩 1’에 적혀 있는 정수들이 N개 들어온다.
그 다음 줄에는 ‘수첩 2’에 적어 놓은 정수의 개수 M(1 ≤ M ≤ 1,000,000) 이 주어지고, 다음 줄에 ‘수첩 2’에 적어 놓은 정수들이 입력으로 M개 들어온다.
모든 정수들의 범위는 int 로 한다.

‘수첩2’에 적혀있는 M개의 숫자 순서대로, ‘수첩1’에 있으면 1을, 없으면 0을 출력한다.

내가 이 문제를 보고 생각해본 부분

입력 처리: BufferedReader를 사용하여 입력을 받는다.
HashSet 사용: 수첩 1의 정수를 HashSet에 저장하여 O(1) 시간 복잡도로 존재 여부를 확인할 수 있도록 한다.
결과 저장: 각 질문에 대한 결과를 StringBuilder에 저장한 뒤, 모든 질문이 처리된 후 한 번에 출력해준다.

코드로 구현

package baekjoon.baekjoon_26;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;

// 백준 2776번 문제
public class Main928 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();

        int T = Integer.parseInt(br.readLine()); // 테스트 케이스 개수

        while(T-- > 0) {
            int N = Integer.parseInt(br.readLine()); // 수첩 1에 적혀 있는 정수의 개수
            HashSet<Integer> notebook1 = new HashSet<>();

            // 수첩 1에 적힌 정수 입력
            String[] numbers1 = br.readLine().split(" ");
            for(int i = 0; i < N; i++) {
                notebook1.add(Integer.parseInt(numbers1[i]));
            }

            int M = Integer.parseInt(br.readLine()); // 수첩 2에 적혀 있는 정수의 개수

            // 수첩 2에 적힌 정수 입력 및 확인
            String[] numbers2 = br.readLine().split(" ");
            for(int i = 0; i < M; i++) {
                int query = Integer.parseInt(numbers2[i]);
                if(notebook1.contains(query)) {
                    sb.append("1\n");
                } else {
                    sb.append("0\n");
                }
            }
        }

        // 결과 출력
        System.out.print(sb.toString());
        br.close();
    }
}

마무리

코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.

profile
Junior backend developer

0개의 댓글

관련 채용 정보