728x90
반응형
문제 설명
해당 문제는 문자열 배열에서 각 문자열의 n번째 문자를 기준으로 정렬하는 문제이다.
만약 n번째 문자가 같다면, 전체 문자열 기준으로 사전 순 정렬을 진행한다.
핵심 방법
정렬 기준이 단순히 n번째 문자이므로, std::sort에 비교 함수를 전달하여 커스텀 정렬을 구현한다.
a[n] == b[n]인 경우 a < b로 사전순 정렬을 추가해준다.
문자열이 모두 n보다 길다는 조건이 있기 때문에 a[n] 접근은 안전하다.
sort에 대한 자세한 설명은 아래 링크에 정리해두었다.
Sort(정렬)
Sort 사용법C++에서 Sort는 배열이나 컨테이너를 정렬하는 데 사용된다.기본적으로 오름차순 정렬을 수행하며, 내림차순으로 정렬도 가능하다.또한 커스텀 함수를 넘겨주므로 정렬 기준을 사용자
jinho082008.tistory.com
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector<string> solution(vector<string> strings, int n) {
// 문자열 벡터를 정렬함. 커스텀 비교 함수를 사용
sort(strings.begin(), strings.end(), [n](string a, string b){
// 만약 n번째 문자가 같다면 전체 문자열 사전순으로 비교
if(a[n] == b[n])
return a < b; // 사전 순으로 앞선 것이 먼저 옴
return a[n] < b[n]; // n번째 문자가 더 작은 것이 먼저 옴
});
// 정렬된 결과를 반환
return strings;
}
728x90
반응형
'프로그래밍 > 코딩테스트' 카테고리의 다른 글
코딩테스트 : 두 개 뽑아서 더하기 (0) | 2025.04.17 |
---|---|
코딩테스트 : 숫자 문자열과 영단어 (0) | 2025.04.17 |
코딩테스트 : [1차] 비밀지도 (0) | 2025.04.17 |
코딩테스트 : 추억 점수 (0) | 2025.04.17 |
코딩테스트 : 폰켓몬 (0) | 2025.04.17 |