본문 바로가기
프로그래머스/Lv.1

[C++] 문자열 내 마음대로 정렬하기

by MINU.SHINNNN 2023. 5. 18.

https://school.programmers.co.kr/learn/courses/30/lessons/12915

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

풀이

문자열의 n번째 인덱스를 기준으로 정렬하되, n번째 인덱스의 문자가 같다면 사전순으로 정렬해야 하는 문제입니다.

 

비교 함수를 만든 후, sort 알고리즘으로 정렬해주면 해결할 수 있습니다.

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

int global;

bool cmp(string& a, string& b) 
{
    if (a[global] == b[global]) 
        return a < b; // 사전순
    
    return a[global] < b[global]; // 빠른 순
}

vector<string> solution(vector<string> strings, int n) {
    vector<string> answer;
    global = n;
    
    sort(strings.begin(), strings.end(), cmp);
    return strings;
}