티스토리 뷰

코드 바로보기💻

 

 

문제 설명

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


제한사항

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

입출력 예

s return
"Zbcdefg" "gfedcbZ"

 

 

초기화면

 

 

완성 코드

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

// 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요.
char* solution(const char* s) {
    // return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
    char* answer = (char*)malloc(strlen(s));
    strcpy(answer,s);
    for(int i=0;i<strlen(s)+1;i++){
        for(int j=i+1;j<strlen(s);j++){
            if(answer[i]<answer[j]){
                char temp = answer[i];
                answer[i] = answer[j];
                answer[j] = temp;
            }
        }
    }
    
    return answer;
}

 

 

 

코드 분석

단계 과정
배열 변환한 결과(내림차순 정렬된 문자열)가 저장될 char 배열 answer
strcpy 문자열 s를 answer에 복사하기

주어진 문자열 s는 const형이기 때문에 s자체를 내림차순으로 정렬할 수는 없다.
따라서 s를 answer에 복사한 뒤, answer를 내림차순으로 정렬해야 한다.
for selection 정렬을 문자열 배열로 조금 수정한 코드이다.

 

 

 

strcpy 알아보기

 

📚strcpy(문자열 복사하기) 참고자료 / 코딩도장

 

 

 

 

selection 정렬 알아보기

 

📚selection(정렬) 참고자료 / github.io

 

 

 

 

이렇게 하면 되겠지? 라는 마음에 한번 해봤는데
바로 풀린 신기한 문제..
얼떨떨

 


 

링크

 

코딩테스트 연습 - 문자열 내림차순으로 배치하기

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

programmers.co.kr

 

 

About Me

💻GitHub/KimSky904 KimSky904 - Overview Department of New Media Software. KimSky904 has 8 repositories available. Follow their code on GitHub. github.com

code-review.tistory.com

 

댓글