반응형
https://programmers.co.kr/learn/courses/30/lessons/12915
코딩테스트 연습 - 문자열 내 마음대로 정렬하기 | 프로그래머스
문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 [sun, bed, car]이고 n이 1이면 각 단어의 인덱스 1의 문자 u, e, a로 strings를 정렬합니다. 제한 조건 strings는 길이 1 이상, 50이하인 배열입니다. strings의 원소는 소문자 알파벳으로 이루어져 있습니다. strings의 원소는 길이 1 이상, 100이하인
programmers.co.kr
본 문제는 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 |
댓글