• Jan
  • Feb
  • Mar
  • Apr
  • May
  • Jun
  • Jul
  • Aug
  • Sep
  • Oct
  • Nov
  • Dec
  • Sun
  • Mon
  • Tue
  • Wed
  • Thu
  • Fri
  • Sat
  • 27
  • 28
  • 29
  • 30
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

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

image

문제 정리

문자를 큰 것 부터 작은 순으로 정렬해 새로운 문자열 리턴. 대문자는 소문자보다 작음! (대문자가 더 뒤에 옴)

생각해보기

걍 sort 쓰면 될 것 같지만 우선 <algorithm> 안 쓰고 해보자면…
계속 최솟값 찾아서 새 string에 append하는 식으로 해야 할 듯

코드 쓰기

문제 잘 읽기… 큰 것 부터 작은 순으로 정렬이었다..!

내 풀이

#include <string>
#include <vector>
#include <iostream>

using namespace std;

string solution(string s) {
    string answer = "";
    
    while(s != ""){
        char max = 'A';
        int idx = 0;
        for(int i=0; i<s.size(); i++){
            if(s[i] - '0' > max - '0'){
                max = s[i];
                idx = i;
            }
        }
        s.erase(s.begin() + idx);
        answer.push_back(max);
    }
    
    return answer;
}

풀고 나서 알게된 것

string도 특정 idx 문자 지울 때 erase를 쓸 수 있군..~! push_back도 할 수 있고..!!!