🥟 Java/코딩테스트

[백준 10815] 숫자 카드 - Java

꾸씅이 2025. 6. 4. 23:57

📌 문제 링크

https://www.acmicpc.net/problem/10815

 

 

 

 

📄 문제 설명

 

🧠 문제 접근

 

  • 단순히 배열로 숫자들을 저장하고 매번 하나하나 비교하면 시간복잡도가 O(N * M)이 되어 시간 초과가 날 수 있다.
  • 따라서 빠르게 검색 가능한 자료구조가 필요하다.
  • 여기서는 HashMap을 활용해서 탐색을 O(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));

        int N = Integer.parseInt(br.readLine());
        String[] s1 = br.readLine().split(" ");

        Map<String, String> map = new HashMap<>();
        for (int i = 0; i < N; i++) {
            map.put(s1[i], "1");
        }

        int M = Integer.parseInt(br.readLine());
        String[] s2 = br.readLine().split(" ");

        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < M; i++) {
            if (map.containsKey(s2[i])) {
                sb.append("1 ");
            } else {
                sb.append("0 ");
            }
        }

        System.out.println(sb);
    }
}

 

 

 

'🥟 Java > 코딩테스트' 카테고리의 다른 글

[백준 1904] 01타일 - Java  (0) 2025.06.06
[백준 2747] 피보나치 수 - Java  (0) 2025.06.05
[백준 7785] 회사에 있는 사람 - Java  (0) 2025.06.03
[백준 28279] 덱 2 - Java  (0) 2025.06.02
[백준 18258] 큐2 - Java  (0) 2025.06.01