문제 설명
문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
제한 조건
- str은 길이 1 이상인 문자열입니다.
풀이 과정 (자바)
문자열 s을 char형 배열 arr로 생성했고,
char형 데이터를 담을 tmp에 임시로 arr[0] 값을 넣었다.
이중 for문을 돌렸는데
첫 번째 값을 두 번째, 세 번째, ...., 끝값까지 비교해서 가장 큰 값을 맨 앞에 넣어줬다.
이 과정을 전체적으로 진행하여 첫 번째가 가장 큰 값, 마지막이 가장 작은 값으로 처리했다.
그리고 char형 배열을 String으로 변환하여 반환했다.
문자끼리 비교할 때, 아스키 코드를 이용해 대소 구분을 했다.
A: 65 ~ Z: 90
a: 97 ~ z: 122
소문자가 값이 더 크고, 대문자가 값이 작다.
참고: 위키백과
https://ko.wikipedia.org/wiki/ASCII
ASCII - 위키백과, 우리 모두의 백과사전
1972 프린터 사용 설명서에 개시된 아스키 코드 차트표 미국정보교환표준부호(영어: American Standard Code for Information Interchange), 또는 줄여서 ASCII( , 아스키)는 영문 알파벳을 사용하는 대표적인 문자
ko.wikipedia.org
결과
다른 사람의 풀이
* java.util.Arrays를 import 했다. - Arrays.sort()
문자열 s을 char형 배열 sol로 생성했다.
sort를 이용해 sol 배열을 정렬했다. (오름차순)
배열 sol을 String으로 변환 후, StringBuilder를 통해 해당 문자열을 뒤집었다.
toString() 하여 StringBuilder를 String으로 변환 후, 반환했다.
기타
StringBuilder - reverse 기능이 있다는 것을 알게 되었다. 문자열을 뒤집을 때 StringBuilder - reverse를 이용하면 간단하게 처리를 할 수 있어 편리할 거 같다.
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] Level1) 문자열 내 마음대로 정렬하기 (0) | 2021.10.30 |
---|---|
[프로그래머스] Level1) 문자열 내 p와 y의 개수 (0) | 2021.10.29 |
[프로그래머스] Level1) 문자열 다루기 기본 (0) | 2021.10.27 |
[프로그래머스] Level1) 서울에서 김서방 찾기 (0) | 2021.10.26 |