프로그래머스/lv1

프로그래머스 : 문자열 내림차순으로 배치하기(lv1) C++

TIN9 2022. 11. 14.
반응형

프로그래머스 링크

https://school.programmers.co.kr/learn/courses/30/lessons/12917

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제 설명

문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.

제한 사항
  • str은 길이 1 이상인 문자열입니다.
입출력 예
s return
"Zbcdefg" "gfedcbZ"

코드 보기전 알고가면 좋은 함수

std::sort()

#include<algorithm>에 속해있음

algorithm 헤더파일에서 제공하는 STL로써, 기본적으로 범위의 요소 [begin,end]의 사이에있는 원소들을 오름차순으로 정렬합니다.

 

sort함수 원형

template <typename T>
void sort(T start, T end);

template <typename T>
void sort(T start, T end, Compare comp);

std::greater<T>();

sort함수의 3번째 인자로 넣어서 사용할 수 있는데 오름차순 정렬을 내림차순 정렬로 변환해주는 연산을 수행할 수 있게 도와주는 객체클래스이다.

 

동작 원리

template <class T> 
struct greater : binary_function <T,T,bool> 
{
  bool operator() (const T& x, const T& y) const {return x>y;}
};

 

코드

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

using namespace std;

string solution(string s) {
    
    sort(s.begin(), s.end(), greater<int>());
    
    return s;
}
반응형

댓글