문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다.제한 조건

  • strings는 길이 1 이상, 50이하인 배열입니다.
  • strings의 원소는 소문자 알파벳으로 이루어져 있습니다.
  • strings의 원소는 길이 1 이상, 100이하인 문자열입니다.
  • 모든 strings의 원소의 길이는 n보다 큽니다.
  • 인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치합니다

※기본적으로 주어진 라이브러리 <string>, <vector>만 사용

풀이 방법

1. strings의 원소의 n번째 문자를 비교하여 오름차순으로 정렬

2. 만약 n번째 문자가 같다면 strings.at(i)와 strings.at(j)을 비교하여 사전순으로 정렬

#include <string>
#include <vector>

using namespace std;

vector<string> solution(vector<string> strings, int n) {
    
    for(int i = 0; i < strings.size() - 1; i++){
        for(int j = i + 1; j < strings.size(); j++){
            string temp;
            if(strings.at(i).at(n) > strings.at(j).at(n)){
                temp = strings.at(i);
                strings.at(i) = strings.at(j);
                strings.at(j) = temp;
            }
            else if(strings.at(i).at(n) == strings.at(j).at(n)){
                if( strings.at(i) > strings.at(j))  {
                    temp = strings.at(i);
                    strings.at(i) = strings.at(j);
                    strings.at(j) = temp;
                }
            }
        }
    }
    
    return strings;
}

'프로그래머스 > 1레벨' 카테고리의 다른 글

2016년  (2) 2022.12.24
가운데 글자 가져오기  (0) 2022.12.23
같은 숫자는 싫어  (0) 2022.12.23
문자열 내 p와 y의 개수  (0) 2022.12.23
나누어 떨어지는 숫자 배열  (0) 2022.12.23

+ Recent posts