https://programmers.co.kr/learn/courses/30/lessons/12917
코딩테스트 연습 - 문자열 내림차순으로 배치하기
문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로
programmers.co.kr
def solution(s):
s = list(s)
s.sort(reverse=True)
return ''.join(s)
풀이
1. 리스트화
2. 오름차순 정렬
3. 문자열로 join
sorted는 return값으로 정렬된 리스트를 반환하지만,
sort는 return 값이 없이 s의 주소 값을 찾아가 해당 s를 정렬한다.
따라서 ''.join(s.sort(reverse=True))는 에러
다른 풀이
def solution(s):
return ''.join(sorted(list(s))[::-1])
위의 코드는 ((((문자열 s를 리스트화) 정렬한 리스트) 역순으로) 문자열로 join)을 한 코드이다.
앞서 sorted는 정렬된 리스트를 반환한다. 즉, 리스트 이므로 슬라이싱을 사용할 수 있다.
[::-1]는 뒤에서부터 모든 값을 즉, 리스트를 역순으로 만든 다는 뜻
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] Lv1 - 서울에서 김서방 찾기 (파이썬) (0) | 2022.03.22 |
---|---|
[프로그래머스] Lv1 - 문자열 다루기 기본 (파이썬) (0) | 2022.03.22 |
[프로그래머스] Lv1 - 문자열 내 p와 y의 개수 (파이썬) (0) | 2022.03.21 |
[프로그래머스] Lv1 - 문자열 내 마음대로 정렬하기 (파이썬) (0) | 2022.03.21 |
[프로그래머스] Lv1 - 두 정수 사이의 합 (파이썬) (0) | 2022.03.21 |