Programmers Coding Quiz #6 문자열 내림차순 배치
문제 설명
문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
제한사항
- str은 길이 1 이상인 문자열입니다.
입출력 예
s | result |
---|---|
'Zbcdefg' | 'gfedcbZ' |
풀이
키워드는 '내림차순 정렬' 내림차순 정렬로만 배치하면 자동으로 대문자도 뒤로가게된다. 기본적으로 대문자는 소문자보다 앞에오는 문자로 인식되기 때문이다.
def solution(s):
return ''.join(sorted([v for v in s], reverse=True))
파이썬에서는 [리스트].sort()
나 sorted([리스트])
를 통해 정렬을 하곤한다. 둘 다 리스트를 대상으로 하는 메서드기 때문에 리스트 컴프리헨션으로 리스트로 치환 후 sorted(reverse=True)
로 내림차순 정렬 후 다시 str.join
을 써서 문자열로 치환해주면된다.
문제가 쉬웠기에 한 줄로 깔끔하게 나와서 잘 풀었나 싶었는데...
다른풀이
def solution(s):
return ''.join(sorted(s, reverse=True))
알고보니 리스트로 바꿀 필요없이 문자열에 sorted를 쓰면 리스트로 자동치환이 된다는 어메이징한 포인트.. 리스트에 딸린 내장 메서드인 sort와 달리 sorted는 그냥 함수기 때문에 이런 옵션이 있었던 것이다. 🤪
Author And Source
이 문제에 관하여(Programmers Coding Quiz #6 문자열 내림차순 배치), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@keywookim/Programmers-Coding-Quiz-6-문자열-내림차순-배치저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)