반응형
우선 단순 문자열 뒤집기는 다음과 같다.
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을 활용한 듯 하다.
오늘은 여기까지 !!!
반응형
'Python > 코딩테스트' 카테고리의 다른 글
[Python] 프로그래머스 - 두 정수 사이의 합 (0) | 2021.01.22 |
---|---|
소수 구하기 (0) | 2021.01.10 |
[Python] 프로그래머스 - 수박수박수박수? (0) | 2020.12.19 |
[Python] 프로그래머스 - 2016년 (0) | 2020.12.19 |
[Python] 프로그래머스 - K번째 수 (0) | 2020.12.19 |