본문 바로가기
프로그래밍/프로그래머스

C++ 문자열 내 마음대로 정렬하기(프로그래머스)

by devsu 2020. 6. 3.

프로그래머스_문자열 내 마음대로 정렬하기

https://programmers.co.kr/

 

문제 해석

 

이 문제를 풀기위해 이해해야 할 내용은 다음과 같습니다.

 

목표

특정 위치 기준으로 문자열 정렬하기

방법

1. 특정 위치 기준으로 문자열 정렬하기

2. 같은경우 문자열의 사전순으로 정렬한다

 

결과

특정 위치 기준으로 문자열 정렬

 

통과한 코드

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

vector<string> solution(vector<string> strings, int n) {
    vector<string> answer;
    int nSize = strings.size();

    for (int i = 0; i < nSize; i++)
    {
        for (int j = i + 1; j <= nSize - 1; j++)
        {
            if (strings[i][n] > strings[j][n])
            {
                strings[i].swap(strings[j]);
            }
            else if (strings[i][n] == strings[j][n] && strings[i] > strings[j])
            {
                strings[i].swap(strings[j]);
            }
        }
    }

    return strings;
}

버블정렬을 사용하여 비교 후 크면 swap 처리

같으면 사전순으로 swap

 

strings[i][n]를 strings[i].at(n)으로 하면 실패를 했다.

왜그럴까???