문자열 - 문자열 내림차순으로 배치하기
Updated:
C++
문자열 - 문자열 내림차순으로 배치하기
문제
문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
접근 방법
- 문자열의 모든 문자를 vector에 넣는다.
- 문자를 내림 차순으로 정렬한다.
- 정렬한 문자들을 문자열로 만들어 준다.
이게 가능한 이유는, 문자는 아스키 코드인 int로 변환이 가능 하므로 sort로 정렬이 가능하다.
코드
#include <string>
#include <vector>
#include <iostream>
using namespace std;
bool Comp(int a, int b) { //내림 차순을 위한 함수
return a > b;
}
string solution(string s) {
string answer = "";
vector<char> vc;
for (int i = 0; i < s.length(); i++)
vc.push_back(s[i]);
sort(vc.begin(), vc.end(), Comp); //내림 차순으로 문자들을 정렬한다.
for (int i = 0; i < s.length(); i++)
answer = answer + vc.at(i);
return answer;
}
int main() {
string val = solution("Zbcdefg");
cout << val;
return 0;
}
후기 및 개선할 점
5분.