[문자열][programmers] 문자열 내림차순으로 배치하기
Tieck
·2021. 10. 5. 14:40
문제
문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
https://programmers.co.kr/learn/courses/30/lessons/12917
이해
입력
- s : str은 길이 1 이상인 문자열
출력
- 문자를 큰것부터 작은 순으로 정렬된 문자열
조건
- 대문자는 소문자보다 작은 것으로 간주
예시
s | return |
"Zbcdefg" | "gfedcbZ" |
접근
정렬된 문자열을 반환하는 sorted()이용
구현
try #1
def solution(s):
answer = ''
answer = sorted(s)
return answer
- 반환된 문자를 list로 묶어 문자열로 반환하자.
try #2
def solution(s):
answer = ''
answer = list(sorted(s))
return answer
- 흠...
- <파이썬 알고리즘 인터뷰>에서 배운 "".join()을 이용하자.
try #3
def solution(s):
answer = ''
answer = "".join(sorted(s))
return answer
- idea 1. 문자열 슬라이싱으로 뒤집기
- idea 2. sorted()의 파라미터를 이용하여 내림차순으로 정렬 (deafult : 오름차순)
try #4 , idea1 문자열 슬라이싱으로 뒤집기
채점 결과
정확성: 100.0
합계: 100.0 / 100.0
def solution(s):
answer = ''
answer = "".join(sorted(s))[::-1]
return answer
try #5 , idea2 sorted()의 파라미터를 이용하여 내림차순으로 정렬
채점 결과
정확성: 100.0
합계: 100.0 / 100.0
def solution(s):
answer = ''
answer = "".join(sorted(s,reverse = True))
return answer
- idea1과 idea2 모두 통과했다.
- 사용된 메모리의 양과 시간 역시 둘 모두 비슷하다
- idea1의 경우 하지만 테스트 케이스 5번에서 오래(0.14ms)걸리는 경우가 존재한다.
- idea2 역시 테스트 5번에서 0.08ms 비교적 오래 걸린다.
- 두 코드의 두드러진 차이는 존재하지 않는다.
코드 리뷰
익명 외 1055명
def solution(s):
return ''.join(sorted(s, reverse=True))
대부분 나와 같은 방식으로 풀었다.
팁
Reference
https://programmers.co.kr/learn/courses/30/lessons/12917/solution_groups?language=python3&type=all
'알고리즘' 카테고리의 다른 글
[문자열][programmers]이상한 문자 만들기 (0) | 2021.10.05 |
---|---|
[문자열][programmers] 문자열 내 마음대로 정렬하기 (0) | 2021.10.05 |
[문자열][programmers] 문자열 다루기 기본 (0) | 2021.10.05 |
[로드맵] 코딩테스트 학습 개괄 (0) | 2021.10.04 |
[Greedy][programmers]탐욕법 lv1 체육복 (0) | 2021.09.08 |