문자열로 구성된 리스트 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 |