SW 꿈나무
[Level 1][C] 문자열을 정수로 바꾸기 본문
문제
문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.제한 조건
str은 길이 1이상인 문자입니다.
Example
Input 1 : "Zbcdefg"
Output 1 : "gfedcbZ"
Code
#include <stdio.h> #include <stdbool.h> #include <stdlib.h> char* solution(const char* s) { int length = strlen(s); // 정수형 변수 length 선언 및 s의 길이 대입 char* answer = (char*)malloc(length+1); // 문자형 포인터 answer 선언 및 length+1의 메모리 동적 할당 char array[length]; // 길이 length인 문자형 배열 array 선언 char temp='\0'; // 문자형 변수 temp 선언 및 NULL 대입 for(int i=0;i<length+1;i++) { // length 만큼 반복 array[i]=s[i]; // array에 s대입 } for(int i=0;i<length;i++) { // length 만큼 반복 for(int j=0;j<length-1;j++) { // length-1 만큼 반복 if(array[j]<array[j+1]) { // array[j]가 array[j+1]보다 작으면 temp=array[j]; // temp 에 array[j] 대입 array[j]=array[j+1]; // array[j]에 array[j+1] 대입 array[j+1]=temp; // array[j+1]에 temp 대입 // 순서 변경 루틴 } } } for(int i=0;i<length+1;i++){ // length만큼 반복 answer[i]=array[i]; // answer에 array 대입 } answer[length+1]='\0'; // answer의 마지막 자리 NULL문자 대입 return answer; // answer 반환 }
'Algorithm > Programmers' 카테고리의 다른 글
[Level 1][C] 가운데 글자 가져오기 (0) | 2020.03.26 |
---|---|
[Level 1][C] 문자열을 정수로 바꾸기 (0) | 2020.03.26 |
[Level 1][C] 문자열 다루기 기본 (0) | 2020.03.26 |
[Level 1][C] 수박수박수박수박수박수? (0) | 2020.03.26 |
[Level 1][C] 문자열을 정수로 바꾸기 (0) | 2020.03.26 |