[프로그래머스] - 문자열 내림차순으로 배치하기

SeomIII·2021년 7월 7일
0

programmers_LEVEL1

목록 보기
14/34
post-thumbnail

문제 설명

문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.

제한 사항
str은 길이 1 이상인 문자열입니다.

문제 보기

생각 과정
1. 문자열을 정렬하는 sort() 함수나 sorted()를 이용해야지!
2. s 는 문자열이어서 sort() 가 불가능했다.
--> 찾아보니 sort()는 리스트 정렬만 가능하고, sorted()는 리스트 뿐만 아니라 반복 가능한 모든 작업에 적용이 가능하다고 한다.
--> 정렬하면 결과 형태는 리스트이다. 그래서 문자열로 바꿔주는 작업이 필요했다.
3. 문자를 큰 것부터~ 작은 순 !!
: 정렬 후 reverse를 해야한다는 뜻인데 나는 그냥 무작정 푸느라 제대로 고려를 하지 않아 문제 푸는데 더 오래걸렸다.

문제 풀이

    answer = ''
    
    my_sort=sorted(s)
    my_sort.reverse()

    for i in range(len(my_sort)): 
        answer+=my_sort[i] 
    
    return answer

다른 사람 풀이

1)

def solution(s):
    answer = ''.join(sorted(s, reverse=True))
    return answer
    
    // join 사용,,! 
    // sorted에 reverse 를 지정할 수 있구나,,

2)

def solution(s):
    answer = ''
    lst = list(s)
    lst.sort()
    lst.reverse()
    
    // list(s) 를 사용해서 문자열을 list로 바꾼 후 sort()!

    for i in lst:
        answer += i

    return answer

개선점

  • 문제를 꼼꼼하게 읽고 차분히 문제를 풀어야 겠다.😅
  • sort()를 리스트에만 적용할 수 있다면 문자열을 리스트로 바꿔서 사용할 생각도 해보자!
profile
FE Programmer

0개의 댓글