pair<int, int> 를 first , 만약 같으면 second 로 sorting 하고싶으시다는건가요??
bool cmp (pair<int,int> p, pair<int,int> q)
{
return p.first < q.first || (p.first == q.first && p.second < q.second);
}
sort(v.begin(), v.end(), cmp);
where v is vector<pair<int, int> >
엄청 별거아닌데 이게아니라면 삭제할게요..~!
sea5727 7년 전
랜덤한 배열이 있습니다 a[2][10] 입니다
quick소팅을 구현하긴했는데 조금 까다로운 조건이 있어서 글을 올립니다.
먼저 되어야할 소팅은 a[i][1]의 값들입니다. 그후에 a[i][1]의 값이 동일할때는 a[i][0] 의 값을 기준으로 소팅이 되어야 합니다.
어떤식의 알고리즘을 구현해야할까요?
저는 먼저 a[i][1] 을 소팅을 한후에
(ex : { 5, 5} { 3, 5} {10,7} {6 , 11} { 7 , 11} ... 1열의 숫자만으로 소팅을 먼저함)
a[i][1]의 값이 중복이되어 나열된다면 a[i][0]을 기준으로 소팅되게 했습니다. 그런데 시간초과가 나더라구요
(ex: 처음부터 a[i][1] 의 값이 같은 첫index와 끝index를 구해서 소팅시킴.. 같은글자가 없이 한번만되면 넘어가도록함)
너무 탐색을 오래하는거같긴한데 어떤식으로 알고리즘을 짜야할까요?
(아무래도 문자열소팅과 비슷한 느낌인데 어떤 식으로 알고리즘을 작성해야하나요???)