ALGORITHM/OTHER
11582 치킨 TOP N
느리님
2020. 12. 26. 00:54
https://www.acmicpc.net/problem/11582
11582번: 치킨 TOP N
인하대 주변 치킨칩의 맛의 정도를 측정해 수치화하는 동아리 C.T.P(Chicken Tastes Perfect)의 회장 민호는 치킨집의 맛의 수치를 감소하지 않는 순으로 정렬을 하고 싶었다. 하지만 치킨집이 너무 많
www.acmicpc.net
쉬운 문제인데 기본적인 sort 함수 범위에서 막혀서 당황했던 문제
일반적으로 vector에서 sort함수를 사용할 때 ,
sort(v.begin(), v.end());
이렇게만 사용했더니 범위에 대한 것은 생각지도 않고있었다.
https://www.cplusplus.com/reference/algorithm/sort/?kw=sort
sort - C++ Reference
custom (2)template void sort (RandomAccessIterator first, RandomAccessIterator last, Compare comp);
www.cplusplus.com
sort 함수 범위는 [first,last) 에서만 적용되니 범위만 바꿔줘서 해결
#include <iostream>
#include <vector>
#include <string>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <stack>
#include <queue>
#define initialize(x, y) memset(x, y, sizeof(x));
using namespace std;
int N, k, input;
vector<int> taste;
int main() {
ios::sync_with_stdio(false);
cin >> N;
for (int i = 0; i < N; i++) {
cin >> input;
taste.push_back(input);
}
cin >> k;
int member = N / 2, sortingN;
vector<int>::iterator begin, end;
while (1) {
sortingN = N / member;
for (int i = 0; i < member; i++) {
begin = taste.begin() + (sortingN * i);
end = taste.begin() + (sortingN * (i + 1));
sort(begin, end);
}
if (member == k) {
for (auto i : taste) {
cout << i << " ";
}
break;
}
member /= 2;
}
}
더불어 iterator 선언 방법도 다시 공부