본문 바로가기
Python/코딩테스트

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

by @sseyeon_ 2020. 12. 19.
반응형

 

우선 단순 문자열 뒤집기는 다음과 같다.

def solution(s):

    answer = ''
    answer = s[::-1]

    return answer

 

문제는 대소문자 구분하고 내림차순 정렬하기 !

 

대문자는 소문자보다 작은 것으로 간주하여 Zbcf 를 bcfZ로 바꾸어야 한다.

 

 

 

음 나는 아스키코드랑 리스트로 접근하기로 했다 ! 

 

- ord('z') : z의 아스키 코드를 알려주는 함수

- chr(90) : 아스키 코드 90번이 어떤 문자인지 알려주는 함수 (참고로 'Z'이다)

 

[ 성공코드 ] 

def solution(s):
    answer = ''
    tmp = []
    for i in s:
        tmp.append(ord(i))
    tmp.sort(reverse=True)
    for i in tmp:
        answer += chr(i)
    return answer

 

1. 맨 위 for문에서 문자열 s를 하나하나 읽어 아스키코드로 변환하고 

2. 그것을 tmp라는 리스트에 저장한다.

  - 정렬함수를 사용하기 위해 리스트를 생성하였다! 

3. 그 후 tmp.sort(reverse=True)를 통해 내림차순으로 정렬하고

4. tmp를 앞에서부터 읽어와 문자로 다시 반환하여 

5. 문자열에 저장한다. 

 

 

예.. 그랬습니다 ,, 

 

조건에 대문자는 소문자보다 작은 것으로 간주한다는 말에 순간 헷갈렸지만

생각해보니 아스키코드 값이 원래 더 작았기 때문에 상관 없었다

 

나는 아스키코드를 활용했는데 

다른 사람은 join을 활용한 듯 하다.

 

 

오늘은 여기까지 !!!  

반응형