📝 문제
> 문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
https://programmers.co.kr/learn/courses/30/lessons/12917
코딩테스트 연습 - 문자열 내림차순으로 배치하기
문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로
programmers.co.kr
🎨 풀이
💡 첫 번째 시도 = 성공
def solution(s):
answer = ''
lower = []
upper = []
for char in s :
if ord(char) <= 96 :
upper.append(char)
else : lower.append(char)
upper.sort(reverse = True)
lower.sort(reverse = True)
result = "".join(lower + upper)
return result
>
1. s에 있는 문자를 대문자인지 소문자인지 구별해서 나눠담는다.
- ord(char)는 해당 문자의 아스키코드를 반환해주는 내장함수다.
- A~Z는 65~90에 해당하고, a~z는 97~122에 해당한다.
- 그래서 if문을 96 이하일 때 upper 리스트에, 그 외의 경우에는 lower 리스트에 넣게 해주었다. (s가 대소문자만 있다고 제시해줘서 가능)
2. 나눠담은 리스트를 각각 역순으로 정렬한다.
3. lower 리스트와 upper리스트를 join 이용해서 합친 후 리턴한다.

끝~
⭐ 느낀점
> ord는 쓸 때마다 좀 헷갈리는 거 같다. 좀 응용 잘 해야 할 것 같다. 파이팅~~~~~~~
'🎲 알고리즘 공부 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 / Level 1] 시저 암호 (파이썬) (0) | 2022.04.25 |
---|---|
[프로그래머스 / Level 1] 서울에서 김서방 찾기 (파이썬) (0) | 2022.04.24 |
[프로그래머스 / Level 1] 수박수박수박수박수박수? (파이썬) (0) | 2022.04.22 |
[프로그래머스 / Level 1] 문자열 내 p와 y의 개수 (파이썬) (0) | 2022.04.21 |
[프로그래머스 / Level 1] 문자열 내 마음대로 정렬하기 (파이썬) (0) | 2022.04.20 |