
문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
def solution(s):
return(''.join(sorted(list(s), reverse=True)))
ord() 함수를 통해 문자의 유니코드 정수를 확인할 수 있다. 예를 들어 ord('a)는 정수 97을 반환한다.
그리고 유니코드 표를 확인해보면, 대문자보다 소문자의 유니코드 정수값이 더 큰 것을 알 수 있다.
sorted() 함수를 이용해 문자열 또한 정렬할 수 있다. 문자를 큰 것부터 작은 순으로 정렬해야 하기 때문에 reverse 인자를 True로 지정했다.
그리고 sorted() 는 새 정렬된 리스트를 반환하기 때문에 .join() 을 이용해 하나의 문자열로 합쳤다.
def solution(s):
return ''.join(sorted(s, reverse=True))
sorted()에 들어가는 인자가 iterable이길래 문자열을 list()를 통해 iterable로 바꿔줘야 한다고 생각했었다.
알고보니 sorted는 인자를 list로 변환한 뒤, 정렬한다고 한다.
그래서 굳이 list()로 문자열을 감싸줄 필요가 없었다.
그동안은 코딩 테스트 문제를 풀 때 내가 기존에 알고 있는 함수, 방법만을 이용하려고 했었다. 그래서 필요한 함수가 정확히 생각이 나지 않더라도 최대한 검색을 이용하지 않았다.
그런데 이제부터는 코드의 논리적인 부분을 제외하고 나머지 부분에 대해서는 파이썬 공식 문서 등을 적극 활용하려고 한다. 오히려 이 방법이 효율적인 코드를 짜는 능력을 키우는 데 더 도움이 되지 않을까 생각한다.