문제 설명
문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
제한 사항
str은 길이 1 이상인 문자열입니다.
1차 고민
그냥 배열에 담고 sort해서 String으로 리턴하면 되는거아닌가요
1차 코드
func solutiona(_ s:String) -> String {
var str = String(Array(s).sorted())
return str
}
1차 결과
2차 고민
아이고 사장님... playGround에 돌려보았더니 어째 순서가 전혀 변하지 않았다.
sorted가 오름차순 정렬이라 그랬던 것 같은데 깜빡했다. reversed를 추가해주면 내림차순이지 않겠는가
2차 코드
func solution(_ s:String) -> String {
var str = String(Array(s).sorted())
var str2 = String(str.reversed())
return str2
}
2차 결과
다른 사람의 코드
sorted를 역순으로 하는 방법은 by: >였다. 좌측에 더 큰 값이 오도록 이었다.
func solution(_ s:String) -> String {
return String(Array(s).sorted(by:>))
}
이 방법을 쓰면 변수 선언이 필요가 없어진다.
'iOS > Programmers' 카테고리의 다른 글
[Swift] lv.1 문자열 다루기 기본 | Programmers (2) | 2024.03.15 |
---|---|
[Swift] lv.1 부족한 금액 계산하기 | Programmers (3) | 2024.03.14 |
[Swift] lv.1 약수의 개수와 덧셈 | Programmers (1) | 2024.03.12 |
[Swift] lv.1 가운데 글자 가져오기 | Programmers (0) | 2024.03.11 |
[Swift] lv.1 수박수박수박수박수박수? | Programmers (0) | 2024.03.08 |