[C++로 풀이] 문자열 내림 차순으로 배치하기⭐

Date:     Updated:

카테고리:

태그:

📌 문자열 내림 차순으로 배치하기

난이도 ⭐

🚀 문제

image


🚀 내 풀이 ⭕

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

using namespace std;

bool cmp(const char& a, const char& b)
{
    if (a >= 'A' && b <= 'z') // a는 대문자, b는 소문자
        return a > b;
    return a < b;
}

string solution(string s) {
    string answer = "";
    vector<char> v;
    
    for(int i = 0; i < s.length(); i++)
        v.push_back(s[i]);
    
    sort(v.begin(), v.end(), cmp);
    
    answer.resize(v.size());
    for(int i = 0; i < v.size(); i++)
        answer[i] = v[i];
    
    return answer;
}
  • 내가 생각했던 것
    • string 은 sort 를 못 시킬 것 같다. 👉 응 아니야.. 시킬 수 있어 ㅠ
    • 그래서 한 문자씩(char) 벡터에 옮겨서 정렬 후
    • 이를 다시 answer 에 한 글자씩 붙인다.
      • 인덱스로 붙이기 위해 answer를 resize하여 크기 늘림


🚀 다른 풀이

출처 : 프로그래머스

tring solution(string s) {
    string answer = "";
    sort(s.rbegin(),s.rend());

    return s;
}

그냥 이렇게 string을 거꾸로 정렬하면 됐었다.

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

혹은 이렇게 내림 차순.



🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우 
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄

맨 위로 이동하기

Programmers 카테고리 내 다른 글 보러가기

댓글 남기기