티스토리 뷰
□문제 설명
문자열 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
이렇게 하면 되겠지? 라는 마음에 한번 해봤는데
바로 풀린 신기한 문제..
얼떨떨
□링크
'[코테] > [Programmers Lv1]' 카테고리의 다른 글
[Programmers] Lv1_문자열을 정수로 바꾸기 (C/JAVA) (0) | 2021.06.08 |
---|---|
[Programmers] Lv1_문자열 다루기 (C/JAVA) (0) | 2021.06.07 |
[Programmers] Lv1_두 정수 사이의 합 (C/C++) (0) | 2021.06.06 |
[Programmers] Lv1_가운데 글자 가져오기 (C/C++) (0) | 2021.06.06 |
[Programmers] Lv1_두 개 뽑아서 더하기 (C/C++) (0) | 2021.06.05 |
댓글
공지사항
최근에 올라온 글
TAG
- 자바
- cospro기출문제
- c언어
- CosPro
- 코스프로
- 구름에듀 기출문제
- COSPRO 2급
- groomedu
- 구름 기출문제
- 연습문제
- 구름에듀
- C++
- programmers
- YBM기출
- 기출문제
- Cos Pro
- 프로그래머스
- c언어 기출문제
- Java
- YBM
- lv2
- 1급
- C
- 배열
- 배열활용문제
- 코딩테스트
- 알고리즘
- cospro기출
- lv1
- groom
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함