프로그래밍응용/오답노트

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

photoner 2021. 2. 28. 23:56
728x90
반응형
 

프로그래머스

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

programmers.co.kr

문제의 출처!

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

설명

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

제한 사항

  • str은 길이 1 이상인 문자열입니다.

입출력 예

            s                                                                   return

"Zbcdefg" "gfedcbZ"

 

[ C++ ]

1
2
3
4
5
6
7
8
9
10
#include <string>
#include <vector>
#include <algorithm>
 
using namespace std;
 
string solution(string s) {
    sort(s.begin(), s.end(), greater<>()); // 내림차순 : greater<> / 오름차순 : less<>
    return s;
}
cs

sort 함수의 세번째 인자로는 오름, 내림차순 혹은 정렬의 조건을 포함하는 함수를 넣을 수 있다. 

주석과 같이 greater / less 등의 임시 객체 함수로 내림차순과 오름차순을 정할 수 있다.

[ Python ]

1
2
3
4
5
def solution(s):
    return "".join(sorted(s, reverse=True))
    # sorted : s를 정렬하여 새로운 리스트를 반환. (list.sort는 내부 정렬을 함. 새로운 리스트를 반환하지 않음)
    # "".join() join 내의 리스트 요소들을 모두 합치는데, 앞의 문자나 문자열을 요소 중간마다 채움.
 
cs

sorted 함수와 리스트 내의 sort 함수의 차이점을 주석에 적었으며, join 의 사용법 또한 주석 처리 되어 있다.

728x90
반응형