Notice
Recent Posts
Recent Comments
Tags
more
Today
Total
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
관리 메뉴

SW 꿈나무

[Level 1][C] 문자열을 정수로 바꾸기 본문

Algorithm/Programmers

[Level 1][C] 문자열을 정수로 바꾸기

현식 :) 2020. 3. 26. 20:32
  • 문제

    문자열 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 반환
    }
Comments