코딩테스트/프로그래머스
[Level 1][C++] 문자열 내림차순으로 배치하기
MJ.Lee
2024. 9. 27. 22:50
풀이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와 동일