문제

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

풀이

  • 문자의 n 번째 인덱스의 원소를 기준으로 문자열이 들어있는 배열을 정렬하면 된다.
  • n번째 인덱스 원소의 값이 같을때는 사전순으로 정렬
    • 'abcd', 'abce'의 2번째 인덱스값 c는 서로 같으므로 사전순으로 정렬하면 'abcd','abce'가 된다.
  • 즉, 문자열에서 n번째의 값이 서로 같은 경우에는 사전순으로 정렬하고 다를경우에는 크기를 기준으로 정렬하면 된다.

코드

#include <string>
#include <vector>
#include <algorithm>
using namespace std;

vector<string> solution(vector<string> strings, int n) {
    vector<string> answer;
    vector<string> answer2;
    for(int i = 0; i < strings.size(); i++) {
       for(int j = 0; j < strings.size(); j++) {
           if(strings[i][n] < strings[j][n]){
               string temp = strings[i];
               strings[i] = strings[j];
               strings[j] = temp;
           }
           if(strings[i][n] == strings[j][n]) {
               if(strings[i] < strings[j]) {
                   string temp = strings[i];
                   strings[i] = strings[j];
                   strings[j] = temp;
               }
           }
       }
    }

    return strings;
}