프로그래밍/코딩테스트

코딩테스트 : 문자열 내 마음대로 정렬하기

백사니 2025. 4. 17. 08:48
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
반응형