[백준] - 1920번: 수 찾기(Java)

병찬·2022년 6월 23일
0

Baekjoon Online Judge

목록 보기
11/18
post-thumbnail

문제📝


풀이💡

  • 본 문제는 이분 탐색을 활용해서 풀어야 한다.
  • low는 0을 high는 입력할 숫자보다 -1을 넣어주고 찾는 값의 크기와 비교하면서 답을 찾는다.

코드💻

// 백준 Silver4 - 1920(수 찾기)
// 문제링크: https://www.acmicpc.net/problem/1920

import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int num = sc.nextInt(); // 숫자 개수
	
		int A[] = new int[num];

		for(int i=0; i<A.length; i++) {
			A[i] = sc.nextInt();
		}
		
		Arrays.sort(A); // A 정렬
		
		int num2 = sc.nextInt();
		
		for(int i =0; i<num2; i++) {
			int ans=0, low=0, high=num-1;
			int key = sc.nextInt();
			while(low<=high) {
				int mid = (low+high)/2;
				if(A[mid]==key) {
					ans=1;
					break;
				}
				  if(A[mid]>key) 
					  high = mid-1;
                  else 
                	  low = mid+1;
			}
			System.out.println(ans);
		}
	}
}

결과😎


느낀점👨‍💻

이분 탐색을 활용한 문제들을 많이 풀어본 경험이 있어서 그런지 이번 문제는 쉽게 해결할 수 있었던 것 같다.


Sinbmil의 알고리즘 문제 코드

-> https://github.com/Sinbmil/Algorithm-Study

profile
코딩을 열심히 하고 있습니다:)

0개의 댓글