https://school.programmers.co.kr/learn/courses/30/lessons/12917
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
제한 사항
- str은 길이 1 이상인 문자열입니다.
입출력 예
s | return |
"Zbcdefg" | "gfedcbZ" |
<문제 풀이>
def solution(s):
str_list = list(s)
str_list.sort(reverse=True)
result = ''.join(str_list)
return result
- str_list를 통해 s를 리스트로 변환하기 --> "Zbcdefg" -> ['Z', 'b', 'c', 'd', 'e', 'f', 'g']
- 문자가 큰 것부터 작은 순으로 정렬해야 하기 때문에 내림차순 --> 내림차순은 .sort(reverse=True) 이용
- join을 통해 리스트를 통해 다시 문자열로 변환시키기 --> ''.join(str_list)
join 앞에 ''가 붙는 이유는?
<기본적 join의 형태와 의미)
구분자.join(문자열로 합치고자 하는 문자열의 리스트난 튜플)
예시1. 공백을 통한 구분자
words = ['Hello', 'World']
result = ' '.join(words)
print(result) # 출력: 'Hello World'
예시2. 쉼표를 통한 구분자
numbers = ['1', '2', '3']
result = ','.join(numbers)
print(result) # 출력: '1,2,3'
예시3. 빈 문자열을 통한 구분자(이번 문제에서 사용한 것)
chars = ['H', 'e', 'l', 'l', 'o']
result = ''.join(chars)
print(result) # 출력: 'Hello'
--> 여기서 빈 문자열('')이 구분자로 사용되어 각 문자들이 붙어 하나의 문자열이 된다!
'✨Today I Learned > Python' 카테고리의 다른 글
데이터 전처리 문제 실습 (0) | 2024.07.19 |
---|---|
📊데이터 시각화 (Matplotilb) (0) | 2024.07.18 |
데이터 전처리 (Pandas) (0) | 2024.07.17 |
Python codekata 19번 - 정수 제곱근 판별 (0) | 2024.07.11 |
파이썬 라이브 세션 3회차 개인과제 (0) | 2024.07.10 |