Algorithm

[프로그래머스] 문자열 내림차순으로 배치하기

테니드2 2025. 3. 10. 12:24

1. 문제 설명

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

 

- 제한 사항

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

2. 풀이 코드

#include <string>
#include <vector>

using namespace std;

string solution(string s) {
	int n = s.length();

	for (int i = 1; i < n; i++)
	{
		char key = s[i];
		int j = i - 1;

		while (j >= 0 && s[j] < key)
		{
			s[j + 1] = s[j];
			j--;
		}

		swap(s[j + 1], key);

	}

	return s;
}

 

3. 정리

문자들은 정렬 알고리즘(삽입정렬) 구현하여 정렬 하였다.

 

전체 시간 복잡도는 삽입 정렬의 시간 복잡도인 O(n²) 이다.

 

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