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

'Algorithm' 카테고리의 다른 글

[프로그래머스] 문자열 다루기 기본  (0) 2025.03.10
[프로그래머스] 부족한 금액 계산하기  (0) 2025.03.10
[정렬] 병합 정렬  (0) 2025.03.10
[정렬] 퀵 정렬  (0) 2025.03.10
[정렬] 삽입 정렬  (0) 2025.03.10

+ Recent posts