728x90
조건
문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
알고리즘 예상
- string을 배열로 바꾼다.
- 배열을 내림차순으로 정렬한다.
- 배열을 string으로 바꾼다.
초기 코드
class Solution {
fun solution(s: String): String {
var answer = ""
return answer
}
}
내 코드
class Solution {
fun solution(s: String): String =String(s.toCharArray().sortedDescending().toCharArray())
}
처음에 joinToString을 사용했지만 ", , , , ,"와 같은 결과가 나와 String을 사용했다.
다른 사람의 풀이
class Solution {
fun solution(s: String): String = String(s.toCharArray().sortedArrayDescending())
}
개선점 또는 배운점
- sortedDescending().toCharArray()를 할 필요없이 sortedArrayDescending()을 사용하면 됐다.
- joinToString이 왜 저렇게 하는지 찾았다. joinToString뒤에 오는 괄호를 잘못 넣어 다르게 작동했다.
개선된 코드
class Solution {
fun solution(s: String): String =s.toCharArray().sortedArrayDescending().joinToString("")
}
728x90
'TIL > 알고리즘' 카테고리의 다른 글
| 02/07 알고리즘 공부(36) - 문자열 다루기 기본 (1) | 2024.02.07 |
|---|---|
| 02/06 알고리즘 공부(35) - 부족한 금액 계산하기 (0) | 2024.02.06 |
| 02/06 알고리즘 공부(33) - 약수의 개수와 덧셈 (0) | 2024.02.06 |
| 02/06 알고리즘 공부(32) - 내적 (0) | 2024.02.06 |
| 02/05 알고리즘 공부(31) - 수박수박수박수박수박수? (1) | 2024.02.05 |