250x250
Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 막내의막무가내 안드로이드 에러 해결
- 막내의막무가내 코틀린
- 막내의막무가내 플러터 flutter
- flutter network call
- 막내의막무가내 프로그래밍
- 2022년 6월 일상
- 막내의막무가내 코볼 COBOL
- 막내의막무가내 알고리즘
- 주엽역 생활맥주
- 막내의막무가내 rxjava
- 프래그먼트
- 막내의막무가내 플러터
- 막내의 막무가내
- 막내의막무가내 안드로이드
- 막내의막무가내 SQL
- 안드로이드 sunflower
- 안드로이드
- Fragment
- 막내의 막무가내 알고리즘
- 막내의막무가내 안드로이드 코틀린
- 막내의막무가내 목표 및 회고
- 막내의막무가내 코틀린 안드로이드
- 주택가 잠실새내
- 막내의막무가내
- 막무가내
- 안드로이드 Sunflower 스터디
- 프로그래머스 알고리즘
- 막내의막무가내 일상
- 부스트코스
- 부스트코스에이스
Archives
- Today
- Total
막내의 막무가내 프로그래밍 & 일상
[알고리즘] 백준 10815 숫자 카드 -이분탐색- 자바 본문
728x90
백준 분류별 풀기에서 이분탐색문제인 숫자 카드를 풀어봤습니다. 먼저 기본적인 이분탐색문제 중 하나였습니다.
경우의 수를 보면 알다시피 보통 시간초과를 일으키는 문제라는 경고의 수인 50만개까지 데이터가 있을 수 있습니다.
완전탐색으로 문제를 해결하면 당연히 시간초과가 나게됩니다.
그러므로 이분탐색을 사용하여 O(N)을 O(logN) 시간복잡도를 줄여주도록 합시다.
추가로 출력시 StringBuilder가 아닌 System.out.println을 사용해도 시간초과가 나고요.
풀이방법을 간략하게 설명하면,
1. 상근이 카드를 오름차순으로 정렬
2. 찾는 카드를 정렬된 상근이 배열을 이분탐색함
풀이는 다음과 같습니다.
[Java]
import java.util.Arrays;
import java.util.Scanner;
class Main {
private static int N;
private static int[] nArr;
private static int M;
private static StringBuilder sb = new StringBuilder();
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
N = sc.nextInt();
nArr = new int[N];
for (int i = 0; i < N; i++) {
nArr[i] = sc.nextInt();
}
Arrays.sort(nArr);
M = sc.nextInt();
for (int i = 0; i < M; i++) {
int m = sc.nextInt();
int left = 0;
int right = N - 1;
while (left <= right) {
int mid = (left + right) / 2;
int n = nArr[mid];
if (n == m) {
sb.append(1 + " ");
break;
}
if (n > m) { //지금 상근이 카드보다 더 작은거 찾아야함
right = mid - 1;
} else {
left = mid + 1;
}
if (left > right) {
sb.append(0 + " ");
break;
}
}
}
System.out.println(sb.toString());
}
}
728x90
'알고리즘 > 이분탐색' 카테고리의 다른 글
[알고리즘] 백준 2512 예산 -이분탐색- 자바 (0) | 2021.03.01 |
---|---|
[알고리즘] 프로그래머스 입국심사 -이분탐색- 자바 (4) | 2021.02.28 |
[알고리즘] 백준 2110 공유기 설치 -이분탐색- 자바 (2) | 2020.11.05 |
[알고리즘] 백준 2805 나무자르기 -이분탐색- 자바 코틀린 (0) | 2020.10.28 |
[알고리즘] 백준 1654 랜선 자르기 -이분탐색- 자바 (0) | 2020.10.27 |
Comments