728x90
▶문제 : 코딩 테스트 연습 - 문자열 내림차순으로 배치하기 | 프로그래머스 (programmers.co.kr)
▶코드 작성
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
// 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요.
char *solution(const char *s)
{
// return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
char *answer = (char *)malloc(strlen(s) + 1);
int max, temp;
strcpy(answer, s);//s문자열 복사
for (int i = 0; i < strlen(s) - 1; i++)//선택정렬 내림차순
{
max = i;
for (int j = i + 1; j < strlen(s); j++)
{
if (answer[j] > answer[max])//큰 값 찾기
{
max = j;
}
}
if (i != max)//같은 값이 아닐 때 바꾸기
{
temp = answer[i];
answer[i] = answer[max];
answer[max] = temp;
}
}
return answer;
}
▶해석
알파벳 소문자의 십진수가 알파벳 대문자의 십진수보다 값이 크기 때문에, 알파벳 z부터 내림차순으로 정렬해야 하므로 선택 정렬 내림차순을 이용하였다.
728x90
'프로그래머스 > C' 카테고리의 다른 글
프로그래머스 Level 1 : 없는 숫자 더하기 C언어 (0) | 2021.12.18 |
---|---|
프로그래머스 Level 1 : 문자열 다루기 기본 C언어 (0) | 2021.12.14 |
프로그래머스 Level 1 : 두 정수 사이의 합 C언어 (0) | 2021.12.14 |
프로그래머스 Level 1 : 부족한 금액 계산하기 C언어 (0) | 2021.12.05 |
프로그래머스 Level 1 : 가운데 글자 가져오기 C언어 (0) | 2021.11.29 |
댓글