알고리즘, 코테 준비

백준10815 - 숫자카드

Multitab 2022. 11. 7. 19:46

문제

숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 가지고 있는지 아닌지를 구하는 프로그램을 작성하시오.

예시 입력

더보기
5
6 3 2 10 -10
8
10 9 -5 2 3 4 5 -10

예시 출력

더보기
1 0 0 1 1 0 0 1

아이디어

이진탐색

알고리즘

이진 탐색 STL를 사용해 구현시간을 줄이자

소스코드

//소스코드
#include <bits/stdc++.h>

using namespace std;

int N, M;
vector<int> Narr, Marr;

int main() {
	int temp;

	cin >> N;
	for (int i = 0; i < N; i++) {
		cin >> temp;
		Narr.push_back(temp);
	}
	sort(Narr.begin(), Narr.end());
	cin >> M;
	for (int i = 0; i < M; i++) {
		cin >> temp;
		Marr.push_back(temp);
	}
	for (int i = 0; i < M; i++) {
		if (binary_search(Narr.begin(), Narr.end(), Marr[i])) {
			cout << "1 ";
		}
		else {
			cout << "0 ";
		}
	}
}

알아 가야할것

  • sort와 이진탐색 사용방법

'알고리즘, 코테 준비' 카테고리의 다른 글

백준 10971번 - 외판원 순회2  (0) 2022.11.10
백준 20291번 - 파일정리  (0) 2022.11.06
백준 6550번 - 부분 문자열  (0) 2022.11.06
백준 1260번 - DFS와 BFS  (0) 2022.11.06
백준 1717번 - 집합의 표현  (0) 2022.11.06