https://github.com/sdoram/sparta_project
https://github.com/sdoram/Algorithm_study
1. 프로그래머스 문제 - 문자열 정렬하기(2)
문제점
# # 문자열 정렬하기(2)
# # 문제 설명
# # 영어 대소문자로 이루어진 문자열 my_string이 매개변수로 주어질 때, my_string을 모두 소문자로 바꾸고 알파벳 순서대로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요.
# # 제한사항
# # 0 < my_string 길이 < 100
시도해 본 것들
# 알파벳 소문자로 바꾸기 <- swapcase() 사용
# 알파벳 순서대로 정렬하기 <-sort()를 사용하기위해 아스키 코드로 변환 ,sort() 사용
# 정렬한 알파벳 출력하기 <- for문으로 문자열 추가
해결 방법
def solution(my_string):
answer = ''
ord_list = []
for i in my_string:
# 소문자라면 ord_list에 그냥 아스키 코드로 변환해서 추가하기
if not i.isupper():
ord_list.append(ord(i))
# 대문자라면 ord_list에 swapcase()를 통해서 소문자로 바꾸고
# 아스키 코드로 변환해서 추가하기
elif i.isupper():
i = i.swapcase()
ord_list.append(ord(i))
# sort()를 통해서 리스트를 오름차순으로 정렬
ord_list.sort()
# 정렬한 ord_list를 for문으로
# 아스키 코드에서 다시 변환해서 answer에 집어넣기
for i in ord_list:
i = chr(i)
answer += i
return answer
print(solution('Bcad'))
알게 된 점
배워서 알게 된 아스키코드를 활용한 것은 좋았으나 만들고 난 뒤의 코드를 살펴보니 아스키코드로 변환하는 과정이 필요한가 싶은 생각이 든다.
def solution(my_string):
answer = ''
ord_list = []
for i in my_string:
# 소문자라면 ord_list에 그냥 추가하기
if not i.isupper():
ord_list.append(i)
# 대문자라면 ord_list에 swapcase()를 통해서 소문자로 바꾸기
elif i.isupper():
i = i.swapcase()
ord_list.append(i)
# sorted()를 통해서 리스트를 오름차순으로 정렬
sort_list = sorted(ord_list)
# 정렬한 ord_list를 for문으로 answer에 집어넣기
for i in sort_list:
answer += i
return answer
어렵지 않은 문제여서 한번 바꿔봤더니 sorted()를 활용하면 문자열도 정렬이 가능했다.
사소하지만 완성 코드에서 과정 하나를 바로 줄여서 만족스럽다.
팀 프로젝트에서 배울점은 매우 많았으나 이해를 못 해서 아직 글로 정리할 수 없어서 주말 동안 이해하고 WIL에서 작성해야 할 것 같다.
'개발일지 > TIL' 카테고리의 다른 글
TIL 23-04-02 (0) | 2023.04.02 |
---|---|
TIL 23-04-01 (0) | 2023.04.01 |
TIL 23-03-30 (0) | 2023.03.30 |
TIL 23-03-29 (0) | 2023.03.29 |
TIL 23-03-28 (0) | 2023.03.28 |