https://www.acmicpc.net/problem/11582
쉬운 문제인데 기본적인 sort 함수 범위에서 막혀서 당황했던 문제
일반적으로 vector에서 sort함수를 사용할 때 ,
sort(v.begin(), v.end());
이렇게만 사용했더니 범위에 대한 것은 생각지도 않고있었다.
https://www.cplusplus.com/reference/algorithm/sort/?kw=sort
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 선언 방법도 다시 공부
'ALGORITHM > OTHER' 카테고리의 다른 글
[c++] 14425 문자열 집합 - Trie (트라이), set, unordered_set (0) | 2021.01.24 |
---|---|
2231 분해합, 7568 덩치, 1018 체스판 다시칠하기, 1436 영화감독 숌 (0) | 2021.01.10 |
14621 나만 안되는 연애 (2) | 2021.01.06 |
12789 도키도키 간식드리미 (0) | 2021.01.06 |
11585 속타는 저녁 메뉴 (0) | 2020.12.28 |