티스토리 뷰

반응형

www.acmicpc.net/problem/10815

 

10815번: 숫자 카드

첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,

www.acmicpc.net


⊙ 문제

⊙ 입력

⊙ 출력

⊙ 예제 입출력

⊙ 알고리즘 분류

  • 정렬
  • 이분 탐색

 


⊙ 문제 접근 과정

 

코드는 tooo1.tistory.com/122과 거의 똑같다.

 

[백준(BOJ)] 1920번 : 수 찾기 - C++[CPP]

www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다..

tooo1.tistory.com

 

문제 접근 과정도 위와 똑같으니 쿨하게 생략.

 


⊙ 문제 풀이

 

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int binarySearch(vector<int>&arr,int target, int start, int end) {
    while(start <= end) {
        int mid = (start + end) /2;

        if(arr[mid]==target)
            return mid;
        else if (arr[mid]>target)
            end = mid-1;
        else
            start = mid+1;
    }
    return -1;
}

int n,m;
vector<int> arr;
vector<int> s;

int main() {
    cin >> n;

    for (auto i = 0; i < n; i++) {
        int x;
        cin >> x;
        arr.push_back(x);
    }
    sort(arr.begin(),arr.end());

    cin >> m;

    for (auto i =0; i< m; i++) {
        int x;
        cin >> x;
        s.push_back(x);
    }
    
    for(auto i =0; i<m;i++) {
        int result = binarySearch(arr,s[i],0,n-1);

        if(result!=-1) {
            cout << "1 ";
        }else cout << "0 ";
    }
}

⊙ 결과

 

 


⊙ 마무리

 

 

NONE

 

좋아요는 로그인하지 않아도 누를 수 있습니다!

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
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
글 보관함