문자열 - 문자열 내림차순으로 배치하기
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분.