문제 설명
문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
제한 사항
- str은 길이 1 이상인 문자열입니다.
입출력 예
"Zbcdefg" | "gfedcbZ" |
코드#1
string solution(string s)
{
char dump ;
int size = s.size();
for (int i = 0; i < size; i++)
{
for (int j = i+1; j < size; j++)
{
if (s[i] < s[j])
{
dump = s[i];
s[i] = s[j];
s[j] = dump;
}
}
}
return s;
}
코드#2
#include <algorithm>
using namespace std;
string solution(string s)
{
sort(s.begin(),s.end(), greater<char>());
return s;
}
더보기
#include <algorithm> 헤더파일 추가
배열(arr), vector(v)
- sort(arr, arr + n); // 배열에서 사용 (시작점 주소, 마지막 주소 + 1)
- sort(v.begin(), v. end()); [less<자료형>() 생략] // 오름차순 정렬 (default = Ascending order)
- sort(v.begin(), v. end(), greater<자료형>()); // 내림차순 정렬 (Descending order)
- sort(v.begin(), v. end(), compare); // 사용자 정의 함수 compare
'문제풀이(C++) > 프로그래머스[Level1]' 카테고리의 다른 글
[프로그래머스 Level1][C++] 가운데 글자 가져오기 (0) | 2021.10.16 |
---|---|
[프로그래머스 Level1][C++] 두 정수 사이의 합 (0) | 2021.10.16 |
[프로그래머스 Level1][C++] 문자열 다루기 기본 (0) | 2021.10.14 |
[프로그래머스 Level1][C++] 이상한 문자 만들기 (0) | 2021.10.14 |
[프로그래머스 Level1][C++] 약수의 합 (0) | 2021.10.13 |