프로그래머스 - level 1 문자열 내림차순으로 배치하기

pa324·2019년 11월 28일
0

문제

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

풀이

  • 입력받은 문자열을 내림차순으로 정렬하면 되는 문제
  • algorithm의 sort를 이용해서 내림차순으로 정렬해서 해결 가능
    • algorithm의 sort는 기본적으로 오름차순으로 정렬을 시켜준다.
      - ```void sort(T start, T end, Compare comp) ```
      - sort메서드의 3번째 인자를 넣지 않으면 default로 오름차순 정렬
      - 3번째 인자에 사용자가 정의한 함수를 기준으로 정렬 가능
      	- ```vodi(v.begin(),v.end(),greater<자료형>()) ```
      • functional를 include하면 less,greater,plus,minus를 사용할 수 있다.
        • greater : 첫 번째 인자가 두 번째 인자보다 크면 true
          • less : 첫 번째 인자가 두 번째 이낮보다 작으면 true
          • plus : 두 개의 인자를 더한 값 반환
          • minus : 첫번째 인자에서 두 번째 인자를 뺀 값 반환
  • 정렬알고리즘을 직접 구현해서 해결 가능

코드

  • C++ sort 사용
#include <string>
#include <vector>
#include <algorithm>
#include <functional>
using namespace std;

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

}
  • 정렬 직접 구현

#include <string>
#include <vector>

using namespace std;

string solution(string s) {
    int i,j,r;
    for(i=0;i<s.size()-1;i++){
        for(j=i+1;j<s.size();j++){
            if(s[i]<s[j]){
                r=s[i];
                s[i]=s[j];
                s[j]=r;
            }
        }
    }
     string answer = s ;
    return answer;
}

profile
안녕하세요

0개의 댓글