카테고리 없음

프로그래머스 <문자열 내 마음대로 정렬하기>

우성팔 2023. 12. 1.

 

처음에 문제를 접했을 때 sorted()를 생각하였지만 sorted() 안에 매개변수로 정렬할 문자열만 들어갈 수 있는 줄로만 알고 있어서 무엇을 기준으로 정렬할지 정할 수 있었으면 좋겠다 생각하고 다른 방법을 생각해 냈다

 

내가 작성한 코드

 

더보기
def solution(strings, n):
    answer = []
    new_str = []
    
    for s in strings:
        new_str += ["".join(s[n] + s[:n] + s[n+1:])] #Strings의 n번째값을 옮기기
        
    new_str.sort()
    
    for s2 in new_str:
        answer += ["".join(s2[1:n+1] + s2[0] + s2[n+1:])] #새로 만든 new_str을 원래상태로 옮기기

    return answer

 

약간의 노가다(?) 방식으로 직접 옮기는 것..

 

다른 분께서 작성한 코드

 

더보기
def strange_sort(strings, n):
    return sorted(strings, key=lambda x: x[n])

 

내가 처음 생각했던 문자열의 n번째 문자를 기준으로 정렬을 하는 것이다

찾아보니 sorted() 안에 첫 번째 매개변수는 정렬할 문자, 두 번째 정렬할 기준을 넣을 수 있었다!

(이 문제에서는 strings의 각각의 문자열에 n번째에 있는 값이 기준이니 람다를 사용하여 x[n])

 

추가

+ reversed = True/False 해서 오름차순으로 할 것인지, 내림차순으로 정렬할 것인지도 정할 수 있다

+ 기준을 여러 가지를 둘 수도 있다. 그럴 땐 lambda x : x[n], x[n+1] .. 이런 식으로 첫 번째 기준을 거치고 그다음 두 번째 기준을 적용시킴

댓글