반응형
https://programmers.co.kr/learn/courses/30/lessons/12915
본 문제는 sort와 cmp를 연습하는 문제다. 프로그래머스 LEVEL 1, 2는 C++ STL을 연습할 수 있는 문제가 많아서 좋다. sort 사용에 대해 잠깐 소개하면
- 오름차순 - sort(v.begin(), v.end());
- 내림차순 - sort(v.rbegin(), v.rend());
- 기타 - sort(v.begin(), v.end(), cmp); 가 있다.
여기서 v.begin(), v.end()는 vector v의 시작 주소와, 끝 주소를 뜻한다. 다음은 코딩 순서다.
- 2번째 인덱스 값 비교하기
- 2번째 인덱스 값이 동일하다면 사전 순으로 정렬하기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int k;
bool cmp (string a, string b) {
if (a[k] != b[k]) return a[k] < b[k];
else return a < b;
}
vector<string> solution(vector<string> strings, int n) {
k = n;
sort(strings.begin(), strings.end(), cmp);
return strings;
}
|
cs |
반응형
'프로그래머스' 카테고리의 다른 글
[프로그래머스] level 3 - 이중우선순위큐 (0) | 2020.02.08 |
---|---|
[프로그래머스] 힙(Heap) - 더 맵게, C++ (0) | 2020.01.06 |
[프로그래머스] 2019 KAKAO BLIND RECRUITMENT - 오픈 채팅방, C++ (0) | 2020.01.06 |
[프로그래머스] 연습문제 - 124 나라의 숫자, C++ (0) | 2020.01.06 |
[프로그래머스]서머코딩/윈터코딩(~2018) - 소수 만들기, C++ (0) | 2020.01.06 |
댓글