https://programmers.co.kr/learn/courses/30/lessons/12917
코딩테스트 연습 - 문자열 내림차순으로 배치하기
문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로
programmers.co.kr
프로그래머스에서 간단한 문제를 하나 풀었는데 생각보다 시간을 많이 써서 버벅거렸던 부분을 기록해두면 좋을 것 같아 쉬운 문제지만 포스팅하게 되었다.

첫번째 시도(실패) - 문법 파괴왕 코린이...
def solution(s):
answer = ''
string = sorted(s)
for s in string :
answer += s
answer = reversed(answer)
return answer
sorted 함수를 사용하여 대문자부터 소문자까지 알파벳 순으로 정렬을 하고자 했다.
이후 대문자는 소문자보다 뒤에 위치해야 하므로 reversed함수를 사용하여 문자열을 뒤집어서 출력하려고 했는데 저렇게 사용하는게 아니었나보다... string에서 reversed()를 사용할 수 없다는 오류가 계속해서 났고 찾아보니 reversed()는 변수 할당을 못하는 것 같았다.
출처: https://blockdmask.tistory.com/468 [개발자 지망생]
두번째 시도 (성공)
def solution(s):
answer = ''
string = sorted(s)
for s in string :
answer += s
return ''.join(reversed(answer))
때문에 reversed()를 변수로 할당하지 않고 바로 return으로 반환시키고자 했다.
이때 검색해보니 reversed()를 사용하고 나면 ['a', 'b', 'c'] 이런 식으로 answer에 문자열이 들어가 있어서 'abc'의 문자열로 합쳐서 반환해주는 함수인 'join'을 사용해야 했다.
특수 문자나 공백없이 모든 문자를 붙여서 출력해야 했기에 ''.join을 사용했고 그 결과 테스트 케이스 모두 통과되었다.
이렇게 reversed() 함수를 사용하는 방법 말고도 문자열 슬라이싱으로도 할 수 있는 방법이 있었다.
다른 사람의 풀이
def solution(s):
answer = ''
string = sorted(s)
string = string[::-1]
for s in string :
answer += s
return answer
처음부터 reversed()에 꽂혀서 생각을 못하고 있었는데 문자열은 [::-1]로 슬라이싱을 해주면 문자열이 뒤집어진다.
이 방법을 사용하면 join도 할 필요없이 깔끔하게 코드를 짤 수 있다.
GitHub - YOOHYOJEONG/algorithm_practice: 알고리즘 공부 및 코딩테스트 준비
알고리즘 공부 및 코딩테스트 준비. Contribute to YOOHYOJEONG/algorithm_practice development by creating an account on GitHub.
github.com
https://programmers.co.kr/learn/courses/30/lessons/12917
코딩테스트 연습 - 문자열 내림차순으로 배치하기
문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로
programmers.co.kr
프로그래머스에서 간단한 문제를 하나 풀었는데 생각보다 시간을 많이 써서 버벅거렸던 부분을 기록해두면 좋을 것 같아 쉬운 문제지만 포스팅하게 되었다.

첫번째 시도(실패) - 문법 파괴왕 코린이...
def solution(s):
answer = ''
string = sorted(s)
for s in string :
answer += s
answer = reversed(answer)
return answer
sorted 함수를 사용하여 대문자부터 소문자까지 알파벳 순으로 정렬을 하고자 했다.
이후 대문자는 소문자보다 뒤에 위치해야 하므로 reversed함수를 사용하여 문자열을 뒤집어서 출력하려고 했는데 저렇게 사용하는게 아니었나보다... string에서 reversed()를 사용할 수 없다는 오류가 계속해서 났고 찾아보니 reversed()는 변수 할당을 못하는 것 같았다.
출처: https://blockdmask.tistory.com/468 [개발자 지망생]
두번째 시도 (성공)
def solution(s):
answer = ''
string = sorted(s)
for s in string :
answer += s
return ''.join(reversed(answer))
때문에 reversed()를 변수로 할당하지 않고 바로 return으로 반환시키고자 했다.
이때 검색해보니 reversed()를 사용하고 나면 ['a', 'b', 'c'] 이런 식으로 answer에 문자열이 들어가 있어서 'abc'의 문자열로 합쳐서 반환해주는 함수인 'join'을 사용해야 했다.
특수 문자나 공백없이 모든 문자를 붙여서 출력해야 했기에 ''.join을 사용했고 그 결과 테스트 케이스 모두 통과되었다.
이렇게 reversed() 함수를 사용하는 방법 말고도 문자열 슬라이싱으로도 할 수 있는 방법이 있었다.
다른 사람의 풀이
def solution(s):
answer = ''
string = sorted(s)
string = string[::-1]
for s in string :
answer += s
return answer
처음부터 reversed()에 꽂혀서 생각을 못하고 있었는데 문자열은 [::-1]로 슬라이싱을 해주면 문자열이 뒤집어진다.
이 방법을 사용하면 join도 할 필요없이 깔끔하게 코드를 짤 수 있다.
GitHub - YOOHYOJEONG/algorithm_practice: 알고리즘 공부 및 코딩테스트 준비
알고리즘 공부 및 코딩테스트 준비. Contribute to YOOHYOJEONG/algorithm_practice development by creating an account on GitHub.
github.com