본문 바로가기

개발일지/TIL

TIL 23-03-31

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