본문 바로가기

코딩테스트/프로그래머스

[Level 1][C++] 문자열 내림차순으로 배치하기

풀이1

#include <string>
#include <cstring>
#include <vector>

using namespace std;

string solution(string s) {
    
    char * arr = new char[s.length()+1];
    strcpy(arr, s.c_str());
    
    for(int i=0; i<s.length(); i++)
        for(int j=1; j<s.length()-i; j++)
            if(arr[i]<arr[i+j])
            {
                char temp = arr[i];
                arr[i] = arr[i+j];
                arr[i+j] = temp;
            }
    
    string answer(arr); //Char 배열을 String으로 바꾸는 방법. 
    return answer;
}

 

 

풀이2

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

string solution(string s) {
    
    sort(s.begin(), s.end(), greater<char>());
   
    return s;
}

 

sort함수
3번째 인자를 넣지 않으면 default로 오름차순으로 정렬한다. 반환형은 void.
- sort(arr, arr+n)
- sort(arr.begin(), arr.end())
- sort(arr.begin(), arr.end(), compare)     //사용자 정의 함수
- sort(arr.begin(), arr.end(), greater<자료형>())     //내림차순
- sort(arr.begin(), arr.end(), less<자료형>())     //오름차순, default와 동일