[코테]/[Programmers Lv1]
[Programmers] Lv1_문자열 내림차순으로 배치하기 (C/C++)
Sky_
2021. 6. 7. 00:40
□문제 설명
문자열 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 알아보기
![]() |
□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