• Home

My Codegate

  • Home

백준 1920 수 찾기 자바 문제풀이

2023/12/18 Posted by Codegate Java No Comments

문제 링크

이번 문제는 입력에서 하단에 받은 값이 상단에 있는지 확인해서 있으면 1 없으면 0을 출력해야 하는데, 다른 문제들처럼 구현만 하면 해결되는 것이 아니라 자연수 범위가 매우 넓기 때문에, 시간 제한에 걸리지 않기 위해서 빨리 구현해야 할 필요가 있는데 이진 탐색을 모르면 진행이 불가능하기 때문에 반드시 개념을 알아두고 진행해야 한다.

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;

public class Main {

  public static void main(String[] args) throws Exception {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    int count = Integer.parseInt(br.readLine());
    String[] split = br.readLine().split(" ");

    int[] searchArr = new int[split.length];
    for (int i = 0; i < split.length; i++) {
      searchArr[i] = Integer.parseInt(split[i]);
    }
    Arrays.sort(searchArr);

    br.readLine();
    String[] split2 = br.readLine().split(" ");
    int[] mainArr = new int[split2.length];
    for (int i = 0; i < split2.length; i++) {
      mainArr[i] = Integer.parseInt(split2[i]);
    }

    for (int i = 0; i < mainArr.length; i++) {
      if (Arrays.binarySearch(searchArr, mainArr[i]) > -1) {
        System.out.println(1);
      } else {
        System.out.println(0);
      }
    }

  }

}

문제 자체는 먼저 입력받은 내용으로 배열을 만들되, 이 배열을 가지고 이진 탐색을 진행하기 위해 Arrays.sort() 메소드로 정렬을 해두고 두 번째 입력받는 내용으로 배열을 만든 뒤

하나씩 돌려주면서 이진 탐색을 진행해주면 되는데, 원리를 모르면 이진 탐색 메소드를 만들면서 진행을 하는 것이 좋겠지만 원리를 알고 있다면 그 다음부터는 시간 싸움이기 때문에

굳이 구현할 필요 없이 Arrays.binarySearch(배열, 찾을_값); 을 사용해주면 값이 있을 경우 해당 값의 인덱스를 리턴 받을 수 있고 없다면 음수를 받게 되는데 값을 확인한 뒤 있으면 1 없으면 0을 출력하면 끝이다.

No Comments
0

Leave a Reply Cancel Reply

Introduction

My Codegate

Latest Posts

  • Google Search Console API 연동방법
  • 인텔리제이 Gradle Dependency 최신 버전 보는 방법
  • Wallet-Tracker 개발일지
  • Moralis API 자바로 호출방법
  • IntelliJ Commit 후 Push 따로 하는 방법

Categories

  • My Project (4)
  • Java (42)
  • Algorithm (161)
    • Java (152)
    • Algorithm Knowledge (3)
    • Algorithm site usage (6)
  • Vue.js (1)
  • Spring (4)
  • Docker (2)
  • IntelliJ (20)
  • Uncategorized (7)

Recent Comments

  • Codegate on Hello world!
  • A WordPress Commenter on Hello world!

© 2025 — mycodegate.com

Prev Next