-
반응형
20551번: Sort 마스터 배지훈의 후계자
지훈이는 Sort 마스터다. 오랫동안 Sort 마스터 자리를 지켜온 지훈이는 이제 마스터 자리를 후계자에게 물려주려고 한다. 수많은 제자들 중에 후계자를 고르기 위해서 지훈이는 제자들에게 문제
www.acmicpc.net
-풀이-
모두 c++에서 제공해주는 함수를 이용할것이다.
algorithm헤더에 있는 sort함수를 이용해 입력받은 배열을 정렬한 뒤, lower_bound를 이용하여, 같거나 큰 숫자중 제일 먼저나오는 수를 검색한다.
그런다음 그 ind의 원소가 찾고싶어하는 숫자인지 비교하여 맞으면 ind출력, 아니면 -1을 출력한다.
-시간복잡도-
정렬은 퀵소트를 이용하므로 O(NlogN) , 이분탐색도 O(LogN)으로 동작하는 함수이므로, O(MlogN)이 걸린다.
M과 N의 범위가 같으므로 시간복잡도는 O(NlogN) 또는 O(MlogN)이 걸린다
-코드-
#include<iostream> #include<algorithm> #include<vector> using namespace std; vector<int> v; int main() { ios_base::sync_with_stdio(0); cin.tie(0); int n,m; cin >> n>>m; for (int i = 0; i < n; i++) { int data; cin >> data; v.push_back(data); } sort(v.begin(), v.end()); for (int i = 0; i < m; i++) { int f; cin >> f; int ind = lower_bound(v.begin(), v.end(), f) - v.begin(); if (ind!=n&&v[ind] == f) { cout << ind << "\n"; } else { cout << "-1\n"; } } return 0; }
반응형'문제풀이 > 백준oj' 카테고리의 다른 글
[백준OJ] 15641번 SUPER SUPER BINARY SEARCH DELUXE 2.5: THE LEGEND OF THE GOLDEN MAZASSUMNIDA, EPISODE 2: THE MAZWAETL UNIVERSE, PART 2: THE PARALLEL UNIVERSE AND THE LOST MAZASSUMNIDA: GAME OF THE YEAR EDITION (0) 2021.05.06 [백준OJ] 9657번 돌 게임 3 (0) 2021.05.04 [백준OJ] 1761번 정점들의 거리 (0) 2021.04.30 [백준OJ] 1323번 숫자 연결하기 (0) 2021.04.28 [백준OJ] 15686번 치킨 배달 (0) 2021.04.27 댓글