본문 바로가기
[Python] Programmers/Level1

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

by 파크영 2021. 6. 4.

문제 설명

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

 

제한 사항

  • str은 길이 1 이상인 문자열입니다.

 

입출력 예

s return
"Zbcdefg" "gfedcbZ"

나의 풀이

[Python(파이썬)]

def solution(s):
    answer = sorted(s,reverse=True)
    for i in range(len(answer)):
        if ord(answer[0]) < 97:
            answer.append(answer.pop(0))
        else:
            break
    return "".join(answer)

처음에 내림차순으로 정렬하지 않고 오름차순으로 정렬하는 실수로 인해 대문자가 앞에 오지 않아 대문자를 뒤로 보내는 작업을 한 코드

for문은 할 필요가 없었다. 

sorted(s) -> 오름차순

sorted(s,reverse=True) -> 내림차순

 

내림차순을 하면 대문자가 뒤로 간다는 사실을 알고 난 후 작성한 코드

def solution(s):
    return "".join(sorted(s,reverse=True))

학습한 내용

  • sorted(s) -> 오름차순
  • sorted(s,reverse=True) -> 내림차순
  • 문제와 예시를 제대로 읽기!!! (예시를 제대로 읽었으면 빠르게 넘어 갈 수 있었던 문제)
  • pop(), append() 학습

 

 

문제 출처

 

코딩테스트 연습 - 문자열 내림차순으로 배치하기

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

programmers.co.kr

 

댓글