728x90
programmers.co.kr/learn/courses/30/lessons/12915
- 프로그래머스로 기본 구현, 문자열 연습 중이다.
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector<string> solution(vector<string> strings, int n) {
vector<string> answer;
vector<pair<int, string>> sorting;
for(int i = 0 ; i < strings.size() ; i++){
sorting.push_back(make_pair(strings[i][n] - 'a', strings[i]));
}
sort(sorting.begin(), sorting.end());
for(int i = 0 ; i < strings.size() ; i++){
answer.push_back(sorting[i].second);
}
return answer;
}
- vector에 pair로 저장을 한 뒤, sort를 이용해서 정렬했다.
- pair은 첫 번째 인자가 같으면 두 번째 인자로 정렬을 한다. 기본 세팅은 오름차순이다.
- compare 함수를 임의로 만들어서 정렬 기준을 만들 수 있다.
bool compare(pair<int, int> &a, pair<int, int> &b)
return a.second < b.second;
sort(v.begin(), v.end(), comapre);
pair을 저장하고 있는 vector에서 두 번째 인자를 기준으로 오름차순 정렬이다.
728x90
'문제 풀이 > 프로그래머스 알고리즘, SQL' 카테고리의 다른 글
[프로그래머스 SQL] 있었는데요, 없었습니다 (join) (0) | 2021.02.23 |
---|---|
[프로그래머스 SQL] NULL 처리하기 (0) | 2021.02.23 |
[프로그래머스] SQL 문제 정리 (0) | 2021.01.20 |
[프로그래머스] 3진법 뒤집기 (n진법, bitset) [C++] (0) | 2021.01.03 |
[프로그래머스] 완주하지 못한 선수(map) [C++] (0) | 2020.12.23 |