티스토리 뷰

 

문제는 위와 같고 처음에는 이진 탐색 방식으로 풀었다가 시간 초과가 나서 주어지는 N 개의 정수를 담는 Set 을 만든 뒤 그 안에 X 정수가 존재하는지를 알아내는 방식으로 구현하였습니다.

 

파이썬 코드는 다음과 같습니다.

from sys import stdin

N = int(stdin.readline())
A = set(map(int, stdin.readline().split()))
M = int(stdin.readline())
find = list(map(int, stdin.readline().split()))

for item in find:
    if item in A:
        print(1)
    else:
        print(0)

 

자바 코드는 다음과 같습니다. " "로 구분되는 문자열을 한번에 int[] 로 받는 방법과 int[] 을 Set 으로 변경하는 부분이 다소 까다로웠던 문제였네요 저는...

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Set;
import java.util.stream.Collectors;

public class BJAlgo_1920 {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int n = Integer.parseInt(br.readLine());
        int[] nums = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
        Set<Integer> set = Arrays.stream(nums).boxed().collect(Collectors.toSet());

        int m = Integer.parseInt(br.readLine());
        int[] finds = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();

        for (int num : finds) {
            if (set.contains(num)) {
                System.out.println(1);
            } else {
                System.out.println(0);
            }
        }
    }
}
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함