문자열 - 문자열 내 마음대로 정렬하기

Updated:

C++

문자열 - 문자열 내 마음대로 정렬하기

문제

문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다.

문제 출처

접근 방법

sort 함수를 응용하여 사용한다.

코드

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

using namespace std;

int N;
bool comp(string a, string b){
    if(a[N] != b[N]){               //string의 n 자리 값이 다른 경우
        return a[N] < b[N];
    }
    else{                           //string의 n 자리 값이 같은 경우.
        return a < b;
    }
}

vector<string> solution(vector<string> strings, int n) {
    vector<string> answer;
    N = n;
    sort(strings.begin(), strings.end(), comp);

    for(int i = 0; i < strings.size(); i++){
        answer.push_back(strings.at(i));
    }
    return answer;
}

int main() {
    vector<string> val = solution({"abce", "abcd", "cdx"}, 2);
    for (int i = 0; i < val.size(); i++) {
        cout << val[i] << "\n";
    }
	return 0;
}

후기 및 개선할 점