본문 바로가기
Algorithm/프로그래머스

[프로그래머스] Lv1 - 문자열 내림차순으로 배치하기 (파이썬)

by _temp 2022. 3. 21.

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]는 뒤에서부터 모든 값을 즉, 리스트를 역순으로 만든 다는 뜻