내용 :
문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
제한사항 :
- str은 길이 1 이상인 문자열입니다.
입출력 예 :
s | return |
Zbcdefg | gfedcbZ |
코드 :
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
bool compare(char a,char b){
return a>b;
}
string solution(string s) {
/*vector 이용
vector<char> c(s.begin(),s.end());
sort(c.begin(),c.end(),compare);
string answer(c.begin(),c.end());
*/
string answer=s;
sort(answer.begin(),answer.end(),compare);
return answer;
}
다시 한번 짚고 넘어가기 :
-string to vector char
vector<char> ch(str.begin(),str.end());
-vector char to string
string str(ch.begin(),ch.end());
-다른 답
sort(ch.begin(),ch.end(),greater<char>()); //내림차순
sort(ch.begin(),ch.end(),less<char>()); //오름차순
도움이 된 글 :
stackoverflow.com/questions/8263926/how-to-copy-stdstring-into-stdvectorchar
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스/level1/c++] 서울에서 김서방 찾기 (0) | 2021.01.07 |
---|---|
[프로그래머스/level1/c++] 문자열 다루기 기본 (0) | 2021.01.07 |
[프로그래머스/level1/c++] 문자열 내 p와 y의 개수 (0) | 2021.01.07 |
[프로그래머스/level1/c++] 문자열 내 마음대로 정렬하기 (0) | 2021.01.07 |
[프로그래머스/level1/c++] 두 정수의 합 (0) | 2021.01.07 |